msem_unlock(3) Library Functions Manual msem_unlock(3)
NAME
msem_unlock - Unlocks a semaphore
LIBRARY
Standard C Library (libc.a)
SYNOPSIS
#include <sys/mman.h>
int msem_unlock ( msemaphore *sem, int condition );
PARAMETERS
Points to an msemaphore structure which specifies the semaphore to be unlocked. Determines whether the msem_unlock() function unlocks the
semaphore if no other processes are waiting to lock it.
DESCRIPTION
The msem_unlock() function unlocks a binary semaphore.
If the condition parameter is 0 (zero), the semaphore is unlocked, whether or not any other processes are currently attempting to lock it.
If the condition parameter is MSEM_IF_WAITERS, and another process is waiting to lock the semaphore or it cannot be reliably determined
whether some process is waiting to lock the semaphore, the semaphore is unlocked by the calling process. If the condition parameter is
MSEM_IF_WAITERS, and no process is waiting to lock the semaphore, the semaphore will not be unlocked and an error will be returned.
All calls to the msem_lock() and msem_unlock() functions by multiple processes sharing a common msemaphore structure behave as if the calls
were serialized.
If the msemaphore structure contains any value not resulting from a call to the msem_init() function followed by a (possibly empty)
sequence of calls to the msem_lock() and msem_unlock() functions, the results are undefined. The address of an msemaphore structure may be
significant. If the msemaphore structure contains any value copied from an msemaphore structure at a different address, the result is
undefined.
NOTES
Trial use
RETURN VALUES
On successful completion, the msem_unlock() function returns 0 (zero). On error, the msem_unlock() function returns -1 and sets errno to
indicate the error.
ERRORS
If the msem_unlock() function fails, errno may be set to one of the following values: MSEM_IF_WAITERS was specified and there were no wait-
ers. The sem parameter points to an msemaphore structure which specifies a semaphore which has been removed, or the condition parameter is
invalid.
RELATED INFORMATION
Functions: msem_init(3), msem_lock(3), msem_remove(3) delim off
msem_unlock(3)