msem_unlock.2 (2010 09)

m
msem_unlock(2) msem_unlock(2)
NAME
msem_unlock - unlock a semaphore
SYNOPSIS
#include <sys/mman.h>
int msem_unlock(msemaphore *sem, int condition);
DESCRIPTION
msem_unlock()
unlocks a binary semaphore.
sem points to an
msemaphore structure that specifies the semaphore to be unlocked.
If the condition argument is zero, the semaphore will be unlocked, whether or not any other processes are
currently attempting to lock it. If the condition argument is
MSEM_IF_WAITERS
, and some other pro-
cess is waiting to lock the semaphore or the implementation cannot reliably determine whether some pro-
cess is waiting to lock the semaphore, the semaphore is unlocked by the calling process. If the condition
argument is
MSEM_IF_WAITERS
, and no process is waiting to lock the semaphore, the semaphore is not
unlocked and an error is returned.
All calls to
msem_lock() and msem_unlock()
by multiple processes sharing a common msema-
phore structure behave as if the calls were serialized.
If the
msemaphore structure contains any value not resulting from a call to msem_init() followed
by a (possibly empty) sequence of calls to msem_lock() and msem_unlock()
, the results are
undefined. The address of an
msemaphore uniquely identifies the semaphore. If the msemaphore
structure contains any value copied from a msemaphore structure at a different address, the result is
undefined.
IMPLEMENTATION NOTES
The system attempts to ignore or recover from invalid values placed in the
msemaphore structure, but
this is not guaranteed for all cases.
RETURN VALUE
Upon success,
msem_unlock() returns zero; otherwise, it returns 1 and sets
errno to indicate the
error.
ERRORS
msem_unlock() fails if any of the following conditions are encountered:
[EAGAIN] MSEM_IF_NOWAIT was specified and there were no waiters.
[EINVAL] sem points to an msemaphore structure that has been removed, or condition is
invalid.
[EFAULT] sem is an invalid pointer.
AUTHOR
msem_unlock() was developed by HP and OSF.
SEE ALSO
msem_init(2), msem_lock(2), msem_remove(2), mman(5).
STANDARDS CONFORMANCE
msem_unlock(): AES
HP-UX 11i Version 3: September 2010 1 Hewlett-Packard Company 1

Summary of content (2 pages)