pthread_rwlock_init —
initialize a read/write lock
POSIX Threads Library (libpthread,
-lpthread)
#include
<pthread.h>
int
pthread_rwlock_init(pthread_rwlock_t
*restrict lock, const
pthread_rwlockattr_t *restrict attr);
The
pthread_rwlock_init()
function is used to initialize a read/write lock, with attributes specified
by attr. If attr is NULL, the
default read/write lock attributes are used.
The results of calling
pthread_rwlock_init()
with an already initialized lock are undefined.
If successful, the pthread_rwlock_init()
function will return zero. Otherwise an error number will be returned to
indicate the error.
The pthread_rwlock_init() function will
fail if:
- [
EAGAIN]
- The system lacked the necessary resources (other than memory) to
initialize the lock.
- [
ENOMEM]
- Insufficient memory exists to initialize the lock.
- [
EPERM]
- The caller does not have sufficient privilege to perform the
operation.
The pthread_rwlock_init() function may
fail if:
- [
EBUSY]
- The system has detected an attempt to re-initialize the object referenced
by lock, a previously initialized but not yet
destroyed read/write lock.
- [
EINVAL]
- The value specified by attr is invalid.
The pthread_rwlock_init() function is
expected to conform to Version 2 of the Single UNIX
Specification (“SUSv2”).
The pthread_rwlock_init() function first
appeared in FreeBSD 3.0.