NAME
pthread_rwlock_unlock() — unlock a read-write lock.
SYNOPSIS
#include <pthread.h>
int pthread_rwlock_unlock(
pthread_rwlock_t *rwlock
);
PARAMETERS
- rwlock
Pointer to the read-write lock to be unlocked.
DESCRIPTION
The function
pthread_rwlock_unlock()
is called by the owner to release the read-write lock referenced by
rwlock.
Results are undefined if the read-write lock
rwlock
is not held by the calling thread.
If this function is called to release a read lock on the read-write lock
rwlock
and there are other read locks currently held on this read-write
lock, the read-write lock shall remain in the read locked state but without the
current thread as one of its owners. If this function releases the last read
lock for this read-write lock, the object shall be put in the unlocked
state with no owners.
If this function is called to release a write lock on the read-write lock
rwlock,
the read-write lock shall be put in the unlocked state with no owners.
If the call to the
pthread_rwlock_unlock()
function results in the read-write lock becoming unlocked and there are
threads waiting to acquire the read-write lock for writing, the scheduling
policy is
used to determine which thread shall acquire the read-write lock for
writing. If there are threads waiting to acquire the read-write lock
object for reading, the scheduling policy is used to determine the order in
which the waiting threads shall acquire the read-write lock object for
reading.
If there are multiple threads blocked on
rwlock
for both read locks and write locks, it is unspecified whether the readers will
acquire the lock first or whether a writer will acquire the lock first.
Results are undefined if this function is called with an uninitialized
read-write lock.
RETURN VALUE
Upon successful completion,
pthread_rwlock_unlock()
returns zero. Otherwise, an error number is returned to indicate the error
(the
errno
variable is not set).
ERRORS
For each of the following conditions, if the condition is detected, the
pthread_rwlock_unlock()
function returns the corresponding error number:
- [EINVAL]
The value specified by
rwlock
does not refer to an initialized read-write lock object.
- [EPERM]
The current thread does not own the read-write lock.
AUTHOR
pthread_rwlock_unlock()
was developed by X/Open.
STANDARDS CONFORMANCE
pthread_rwlock_unlock(): X/Open.