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_TIMEDWAIT(3)					   BSD Library Functions Manual 					  SEM_TIMEDWAIT(3)

NAME
sem_timedwait -- lock a semaphore LIBRARY
POSIX Threads Library (libpthread, -lpthread) SYNOPSIS
#include <semaphore.h> int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout); DESCRIPTION
The sem_timedwait() function locks the semaphore referenced by sem, as in the sem_wait(3) function. However, if the semaphore cannot be locked without waiting for another process or thread to unlock the semaphore by performing a sem_post(3) function, this wait will be termi- nated when the specified timeout expires. The timeout will expire when the absolute time specified by abs_timeout passes, as measured by the clock on which timeouts are based (that is, when the value of that clock equals or exceeds abs_timeout), or if the absolute time specified by abs_timeout has already been passed at the time of the call. Note that the timeout is based on the CLOCK_REALTIME clock. The validity of the abs_timeout is not checked if the semaphore can be locked immediately. RETURN VALUES
The sem_timedwait() function returns zero if the calling process successfully performed the semaphore lock operation on the semaphore desig- nated by sem. If the call was unsuccessful, the state of the semaphore is unchanged, and the function returns a value of -1 and sets the global variable errno to indicate the error. ERRORS
The sem_timedwait() function will fail if: [EINVAL] The sem argument does not refer to a valid semaphore, or the process or thread would have blocked, and the abs_timeout parameter specified a nanoseconds field value less than zero or greater than or equal to 1000 million. [ETIMEDOUT] The semaphore could not be locked before the specified timeout expired. [EINTR] A signal interrupted this function. SEE ALSO
sem_post(3), sem_trywait(3), sem_wait(3) STANDARDS
The sem_timedwait() function conforms to IEEE Std 1003.1-2004 (``POSIX.1''). HISTORY
The function first appeared in FreeBSD 5.0. BSD
March 3, 2008 BSD
Man Page