Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

pthread_rwlock_init(3) [freebsd man page]

PTHREAD_RWLOCK_INIT(3)					   BSD Library Functions Manual 				    PTHREAD_RWLOCK_INIT(3)

NAME
pthread_rwlock_init -- initialize a read/write lock LIBRARY
POSIX Threads Library (libpthread, -lpthread) 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. BUGS
The PTHREAD_PROCESS_SHARED attribute is not supported. BSD
August 4, 1998 BSD

Check Out this Related Man Page

pthread_rwlock_init(3C) 												   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 <pthread.h> 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; The pthread_rwlock_init() function initializes the read-write lock referenced by rwlock with the attributes referenced by attr. If attr is NULL, the default read-write lock attributes are used; the effect is the same as passing the address of a default read-write lock attributes object. Once initialized, the lock can be used any number of times without being re-initialized. Upon successful initializa- tion, the state of the read-write lock becomes initialized and unlocked. Results are undefined if pthread_rwlock_init() is called speci- fying an already initialized 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 of the 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 if pthread_rwlock_destroy() is called when any thread holds rwlock. Attempting to destroy an uninitialized read-write lock results in unde- fined behaviour. A destroyed read-write lock object can be re-initialized using pthread_rwlock_init(); the results of otherwise referenc- ing the read-write lock object after it has been destroyed are undefined. 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 initialization by a call to pthread_rwlock_init() with the parameter attr specified as NULL, except that no error checks are performed. If successful, the pthread_rwlock_init() and pthread_rwlock_destroy() functions return 0. Otherwise, an error number is returned to indicate the error. 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. See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Standard | +-----------------------------+-----------------------------+ |MT-Level |MT-Safe | +-----------------------------+-----------------------------+ pthread_rwlock_rdlock(3C), pthread_rwlock_unlock(3C), pthread_rwlock_wrlock(3C), pthread_rwlockattr_init(3C), attributes(5), standards(5) 23 mar 2005 pthread_rwlock_init(3C)
Man Page