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.