 |
Index for Section 3 |
|
 |
Alphabetical listing for M |
|
 |
Bottom of page |
|
msem_lock(3)
NAME
msem_lock - Lock a semaphore
SYNOPSIS
#include <sys/mman.h>
int msem_lock(
msemaphore *sem,
int condition );
LIBRARY
Standard C Library (libc)
PARAMETERS
sem Points to an msemaphore structure which specifies the semaphore to be
locked.
condition
Determines whether the msem_lock() function waits for a currently
locked semaphore to unlock.
DESCRIPTION
The msem_lock() function attempts to lock a binary semaphore.
If the semaphore is not currently locked, it is locked and the msem_lock()
function returns successfully.
If the semaphore is currently locked, and the condition parameter is
MSEM_IF_NOWAIT, then the msem_lock() function returns with an error. If the
semaphore is currently locked, and the condition parameter is 0 (zero),
then msem_lock() will not return until either the calling process is able
to successfully lock the semaphore, or an error condition occurs.
All calls to msem_lock() and msem_unlock() 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
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
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
AES Support Level:
Trial use
RETURN VALUES
On successful completion, the msem_lock() function returns 0 (zero). On
error, the msem_lock() function returns -1 and sets errno to indicate the
error.
ERRORS
If the msem_lock() function fails, errno may be set to one of the following
values:
[EAGAIN]
MSEM_IF_NOWAIT was specified and the semaphore was already locked.
[EINVAL]
The sem parameter points to an msemaphore structure which specifies a
semaphore which has been removed, or the condition parameter is
invalid.
[EINTR]
The msem_lock() function was interrupted by a signal which was caught.
SEE ALSO
Functions: msem_init(3), msem_remove(3), msem_unlock(3)
 |
Index for Section 3 |
|
 |
Alphabetical listing for M |
|
 |
Top of page |
|