pthread_rwlock_init(3T)pthread_rwlock_init(3T)NAMEpthread_rwlock_init(), pthread_rwlock_destroy() - initialize or destroy
a read-write lock
SYNOPSISPARAMETERS
rwlock Pointer to the read-write lock to be initialized or
destroyed.
attr Pointer to the attributes object that defines the
characteristics of the read-write lock to be initial‐
ized. If the pointer is NULL, default attributes are
used.
DESCRIPTION
initializes the read-write lock referenced by rwlock with the
attributes attr. If attr is NULL, the default read-write lock
attributes are used. Upon successful initialization, the state of the
read-write lock becomes initialized and unlocked. Attempting to ini‐
tialize an already initialized read-write lock object results in unde‐
fined behavior.
The macro can be used to initialize read-write locks which are stati‐
cally allocated. The effect is equivalent to dynamic initialization by
a call to with the attr parameter specified as NULL, except that no
error checks are performed. The read-write lock will be initialized
with default attributes.
If the process-shared attribute in the read-write lock attributes
object referenced by attr is defined as the read-write lock must be
allocated such that the processes sharing the read-write lock has
access to it. This may be done through the memory-mapping functions
(see mmap(2)) or shared memory functions (see shmget(2)).
destroys the read-write referenced by rwlock. This function may set
rwlock to an invalid value. The destroyed read-write lock can be
reinitialized using the function If the read-write lock is referenced
after destruction in any read-write lock call, the resulting behavior
is undefined.
A read-write lock should be destroyed only when no threads are cur‐
rently using it. Destroying a read-write lock which is currently in
use results in undefined behavior.
RETURN VALUE
Upon successful completion, and returns zero. Otherwise, an error num‐
ber is returned to indicate the error (the variable is not set).
ERRORS
If any of the following occur, the function returns the corresponding
error number:
The necessary resources (other than memory) to initialize
rwlock are not available.
rwlock is an already initialized read-write lock. How‐
ever, getting for reinitializing the rwlock can‐
not be expected all the time since the behavior
of reinitializing the rwlock is undefined.
The value specified by
rwlock or attr is invalid.
There is insufficient memory available in which to initialize
the
read-write lock rwlock.
The caller does not have the privilege to perform the operation.
If any of the following occur, the function returns the corresponding
error number:
rwlock is currently locked or being used by other
threads.
The value specified by
rwlock is invalid.
WARNINGS
The space for the read-write lock must to be allocated before calling
Undefined behavior may result if the process-shared attribute of attr
is and the space allocated for the read-write lock is not accessible to
cooperating threads.
AUTHOR
and were developed by X/Open.
SEE ALSOpthread_rwlock_rdlock(3T), pthread_rwlock_tryrdlock(3T),
pthread_rwlock_trywrlock(3T), pthread_rwlock_unlock(3T),
pthread_rwlock_wrlock(3T).
STANDARDS CONFORMANCE
Pthread Library pthread_rwlock_init(3T)