NAME
pthread_rwlock_init
—
initialize a read/write lock
SYNOPSIS
#include
<pthread.h>
int
pthread_rwlock_init
(pthread_rwlock_t
*lock, const
pthread_rwlockattr_t *attr);
DESCRIPTION
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.
RETURN VALUES
If successful, the pthread_rwlock_init
()
function will return zero. Otherwise an error number will be returned to
indicate the error.
ERRORS
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.
SEE ALSO
pthread_rwlock_destroy(3), pthread_rwlockattr_init(3), pthread_rwlockattr_setpshared(3)
STANDARDS
The pthread_rwlock_init
() function is
expected to conform to Version 2 of the Single UNIX
Specification (“SUSv2”).
HISTORY
The pthread_rwlock_init
() function first
appeared in FreeBSD 3.0 and OpenBSD
2.5.
BUGS
The PTHREAD_PROCESS_SHARED attribute is not supported.