Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

sem_trywait(2) [hpux man page]

sem_wait(2)							System Calls Manual						       sem_wait(2)

NAME
sem_wait, sem_trywait - lock a POSIX semaphore SYNOPSIS
DESCRIPTION
is used to lock a semaphore. The calling thread will not return from its call to until one of the following events occur: it successfully obtains a lock on the semaphore; it is interrupted by a signal or an error condition occurs. is used to lock a semaphore, if it is available. The value of the semaphore sem is checked at some unspecified time during the call. If the semaphore is available at the time its value is checked, the calling thread will atomically, with respect to the checking of the value, lock the semaphore. The thread will now own a lock on the semaphore; the call will return successfully. If the semaphore is unavailable at the time its value is checked, then the call returns -1 with errno set to EAGAIN. If the specified semaphore referred to by sem is a named semaphore, then this semaphore must have been opened by the calling process with The calling process must have both read and write permissions on the semaphore to perform these operations. The semaphore will be locked upon successful return and will stay locked until it is explicitly released by a call to To use this function, link in the realtime library by specifying on the compiler or linker command line. EXAMPLES
The following call to will lock the semaphore sem. The following call to will lock the semaphore sem, if it is available. RETURN VALUE
A successful call to will return 0 and the calling thread will then own a lock on the semaphore. Otherwise, the call to will return -1 with errno set to the appropriate value of the error condition. A successful call to will return 0, if the semaphore was available and the calling thread was able to lock the semaphore. Otherwise, the call to will return -1 with errno set to the appropriate value of the error condition. ERRORS
and fail and do not perform the requested operation if any of the following conditions are encountered: [EPERM] The calling process does not have the privileges necessary to lock the semaphore. [EAGAIN] The semaphore was not available and hence could not be locked by This error condition only occurs in [EINVAL] The argument sem does not refer to a valid semaphore. [EINTR] The function was interrupted by a signal SEE ALSO
sem_post(2), <semaphore.h>. STANDARDS CONFORMANCE
sem_wait(2)

Check Out this Related Man Page

sem_wait(3)						     Library Functions Manual						       sem_wait(3)

NAME
sem_wait, sem_trywait - Performs (or conditionally performs) a semaphore lock (P1003.1b) LIBRARY
Realtime Library (librt.so, librt.a) SYNOPSIS
#include <semaphore.h> int sem_wait ( sem_t *sem); int sem_trywait ( sem_t *sem); PARAMETERS
sem Specifies a pointer to the semaphore to be locked. DESCRIPTION
The sem_wait function locks the semaphore referenced by sem by performing a semaphore lock operation on it. If the semaphore value is zero, the sem_wait function blocks until it either locks the semaphore or is interrupted by a signal. The sem_trywait function locks a semaphore only if the semaphore is currently not locked. If the semaphore value is zero, the sem_trywait function returns without locking the semaphore. These functions help ensure that the resource associated with the semaphore cannot be accessed by other processes. The semaphore remains locked until the process unlocks it with a call to the sem_post function. Use the sem_wait function instead of the sem_trywait function if the process should wait for access to the semaphore. RETURN VALUES
If the sem_wait or sem_trywait function returns successfully, a value of 0 (zero) is returned and the function executes the semaphore lock operation. On an unsuccessful call, a value of -1 is returned and errno is set to indicate that an error occurred. The state of the semaphore remains unchanged. ERRORS
The sem_wait and sem_trywait functions fail under the following conditions: [EAGAIN] The semaphore was already locked and cannot be locked by the sem_trywait operation (sem_trywait only). [EINTR] A signal interrupted this function. [EINVAL] The sem argument does not refer to a valid semaphore. RELATED INFORMATION
Functions: sem_post(3) Guide to Realtime Programming delim off sem_wait(3)
Man Page