Manual Page Result
0
Command: sem_wait | Section: 3 | Source: Digital UNIX | File: sem_wait.3.gz
sem_wait(3) Library Functions Manual sem_wait(3)
NAME
sem_wait, sem_trywait - Perform (or conditionally perform) a semaphore
lock (P1003.1b)
SYNOPSIS
#include <semaphore.h>
int sem_wait (
sem_t *sem);
int sem_trywait (
sem_t *sem);
PARAMETERS
sem Pointer to the semaphore to be locked.
DESCRIPTION
The sem_wait function locks the semaphore referenced by sem by perform-
ing 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 sema-
phore cannot be accessed by other processes. The semaphore remains
locked until the process unlocks it with a call to the sem_post func-
tion.
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 is returned and the function executes the semaphore lock opera-
tion.
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 un-
changed.
ERRORS
The sem_wait and sem_trywait functions fail under the following condi-
tions:
[EAGAIN] The semaphore was already locked, so it can not be imme-
diately 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) delim off
sem_wait(3)