Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

pthread_rwlock_init(3) [osf1 man page]

pthread_rwlock_init(3)					     Library Functions Manual					    pthread_rwlock_init(3)

NAME
pthread_rwlock_init - Initializes a read-write lock object. LIBRARY
DECthreads POSIX 1003.1c Library (libpthread.so) SYNOPSIS
#include <pthread.h> int pthread_rwlock_init( pthread_rwlock_t *rwlock, const pthread_rwlockattr_t *attr); PARAMETERS
Read-write lock object to be initialized. Read-write lock attributes object that defines the characteristics of the read-write lock to be initialized. DESCRIPTION
This routine initializes a read-write lock object with the attributes specified by the read-write lock attributes object specified in attr. A read-write lock is a synchronization object that serializes access to shared information that needs to be read frequently and written only occasionally. A thread can acquire a read-write lock for shared read access or for exclusive write access. Upon successful completion of this routine, the read-write lock is initialized and set to the unlocked state. If attr is set to 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 reinitialized. Results of calling this routine are undefined if attr specifies an already initialized read-write lock or if rwlock is used without first being initialized. If this routine returns unsuccessfully, rwlock is not initialized and the contents of rwlock are undefined. A read-write lock is a resource of the process, not part of any particular thread. A read-write lock is neither destroyed not unlocked automatically when any thread exits. Because read-write locks are shared, they may be allocated in heap or static memory, but not on a stack. In cases where default read-write lock attributes are appropriate, you may use the PTHREAD_RWLOCK_INITIALIZER macro to statically initial- ize the lock object without calling this routine. The effect is equivalent to dynamic initialization by a call to pthread_rwlock_init with attr specified as NULL, except that no error checks are performed. Statically initialized read-write locks need not be destroyed using pthread_rwlock_destroy. Use the PTHREAD_RWLOCK_INITIALIZER macro as follows: pthread_rwlock_t rwlock = PTHREAD_RWLOCK_INITIALIZER; RETURN VALUES
If an error condition occurs, this routine returns an integer value indicating the type of error. Possible return values are as follows: Successful completion. The system lacks the necessary resources to initialize the read-write lock. The implementation has detected an attempt to reinitialize the read-write lock (a previously initialized, but not yet destroyed read-write lock object). The value specified by attr is not a valid attributes block. Insufficient memory exists to initialize the read-write lock. The caller does not have privi- leges to perform this operation. ERRORS
None RELATED INFORMATION
Functions: pthread_rwlock_destroy(3) Manuals: Guide to DECthreads and Programmer's Guide delim off pthread_rwlock_init(3)

Check Out this Related Man Page

pthread_rwlock_init(3T) 												   pthread_rwlock_init(3T)

NAME
pthread_rwlock_init(), pthread_rwlock_destroy() - initialize or destroy a read-write lock SYNOPSIS
PARAMETERS
rwlock Pointer to the read-write lock to be initialized or destroyed. attr Pointer to the attributes object that defines the characteristics of the read-write lock to be initialized. If the pointer is NULL, default attributes are used. DESCRIPTION
initializes the read-write lock referenced by rwlock with the attributes attr. If attr is NULL, the default read-write lock attributes are used. Upon successful initialization, the state of the read-write lock becomes initialized and unlocked. Attempting to initialize an already initialized read-write lock object results in undefined behavior. The macro can be used to initialize read-write locks which are statically allocated. The effect is equivalent to dynamic initialization by a call to with the attr parameter specified as NULL, except that no error checks are performed. The read-write lock will be initialized with default attributes. If the process-shared attribute in the read-write lock attributes object referenced by attr is defined as the read-write lock must be allo- cated such that the processes sharing the read-write lock has access to it. This may be done through the memory-mapping functions (see mmap(2)) or shared memory functions (see shmget(2)). destroys the read-write referenced by rwlock. This function may set rwlock to an invalid value. The destroyed read-write lock can be reinitialized using the function If the read-write lock is referenced after destruction in any read-write lock call, the resulting behavior is undefined. A read-write lock should be destroyed only when no threads are currently using it. Destroying a read-write lock which is currently in use results in undefined behavior. RETURN VALUE
Upon successful completion, and returns zero. Otherwise, an error number is returned to indicate the error (the variable is not set). ERRORS
If any of the following occur, the function returns the corresponding error number: The necessary resources (other than memory) to initialize rwlock are not available. rwlock is an already initialized read-write lock. However, getting for reinitializing the rwlock cannot be expected all the time since the behavior of reinitializing the rwlock is undefined. The value specified by rwlock or attr is invalid. There is insufficient memory available in which to initialize the read-write lock rwlock. The caller does not have the privilege to perform the operation. If any of the following occur, the function returns the corresponding error number: rwlock is currently locked or being used by other threads. The value specified by rwlock is invalid. WARNINGS
The space for the read-write lock must to be allocated before calling Undefined behavior may result if the process-shared attribute of attr is and the space allocated for the read-write lock is not accessible to cooperating threads. AUTHOR
and were developed by X/Open. SEE ALSO
pthread_rwlock_rdlock(3T), pthread_rwlock_tryrdlock(3T), pthread_rwlock_trywrlock(3T), pthread_rwlock_unlock(3T), pthread_rwlock_wrlock(3T). STANDARDS CONFORMANCE
Pthread Library pthread_rwlock_init(3T)
Man Page