Standard C Library Functions pthread_rwlock_init(3C)
NAME
pthread_rwlock_init, pthread_rwlock_destroy - initialize or
destroy read-write lock object
SYNOPSIS
cc -mt [ flag... ] file... -lpthread [ library... ]
#include
int pthread_rwlock_init(pthread_rwlock_t *restrict rwlock,
const pthread_rwlockattr_t *restrict attr);
int pthread_rwlock_destroy(pthread_rwlock_t **rwlock);
pthread_rwlock_t rwlock=PTHREAD_RWLOCK_INITIALIZER;
DESCRIPTION
The pthread_rwlock_init() function initializes the read-
write lock referenced by rwlock with the attributes refer-
enced by attr. If attr is NULL, the default read-write
lock attributes are used; the effect is the same as passingthe address of a default read-write lock attributes object.
Once initialized, the lock can be used any number of timeswithout being re-initialized. Upon successful initializa-
tion, the state of the read-write lock becomes initialized
and unlocked. Results are undefined ifpthread_rwlock_init() is called specifying an already ini-
tialized read-write lock. Results are undefined if a read-
write lock is used without first being initialized.If the pthread_rwlock_init() function fails, rwlock is not
initialized and the contents of rwlock are undefined.The pthread_rwlock_destroy() function destroys the read-
write lock object referenced by rwlock and releases any resources used by the lock. The effect of subsequent use ofthe lock is undefined until the lock is re-initialized by
another call to pthread_rwlock_init(). An implementation may
cause pthread_rwlock_destroy() to set the object referenced
by rwlock to an invalid value. Results are undefined ifpthread_rwlock_destroy() is called when any thread holds
rwlock. Attempting to destroy an uninitialized read-write
lock results in undefined behaviour. A destroyed read-write
lock object can be re-initialized using
pthread_rwlock_init(); the results of otherwise referencing
the read-write lock object after it has been destroyed are
undefined.SunOS 5.11 Last change: 23 mar 2005 1
Standard C Library Functions pthread_rwlock_init(3C)
In cases where default read-write lock attributes are
appropriate, the macro PTHREAD_RWLOCK_INITIALIZER can be
used to initialize read-write locks that are statically
allocated. The effect is equivalent to dynamic initializa-
tion by a call to pthread_rwlock_init() with the parameter
attr specified as NULL, except that no error checks are performed.RETURN VALUES
If successful, the pthread_rwlock_init() and
pthread_rwlock_destroy() functions return 0. Otherwise, an
error number is returned to indicate the error.ERRORS
The pthread_rwlock_init() and pthread_rwlock_destroy()
functions will fail if: EINVAL The value specified by attr is invalid. EINVAL The value specified by rwlock is invalid.ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
| MT-Level | MT-Safe |
|_____________________________|_____________________________|
| Standard | See standards(5). ||_____________________________|_____________________________|
SEE ALSO
pthread_rwlock_rdlock(3C), pthread_rwlock_unlock(3C),
pthread_rwlock_wrlock(3C), pthread_rwlockattr_init(3C),
attributes(5), standards(5)SunOS 5.11 Last change: 23 mar 2005 2