Manual Page Search Parameters


initialize a read/write lock

#include <pthread.h>
pthread_rwlock_init(pthread_rwlock_t *lock, const pthread_rwlockattr_t *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:
The system lacked the necessary resources (other than memory) to initialize the lock.
Insufficient memory exists to initialize the lock.
The caller does not have sufficient privilege to perform the operation.
The pthread_rwlock_init() function may fail if:
The system has detected an attempt to re-initialize the object referenced by lock, a previously initialized but not yet destroyed read/write lock.
The value specified by attr is invalid.

pthread_rwlock_destroy(3), pthread_rwlockattr_init(3), pthread_rwlockattr_setpshared(3)

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 and OpenBSD 2.5.

The PTHREAD_PROCESS_SHARED attribute is not supported.
June 5, 2013 OpenBSD-current