United States-English |
|
|
HP-UX Reference > Ppthread_rwlock_init(3T)Pthread LibraryHP-UX 11i Version 3: February 2007 |
|
NAMEpthread_rwlock_init(), pthread_rwlock_destroy() — initialize or destroy a read-write lock SYNOPSIS#include <pthread.h> int pthread_rwlock_init( pthread_rwlock_t *__restrict rwlock, const pthread_rwlockattr_t *__restrict attr ); pthread_rwlock_t rwlock = PTHREAD_RWLOCK_INITIALIZER; int pthread_rwlock_destroy( pthread_rwlock_t *rwlock ); PARAMETERS
DESCRIPTIONpthread_rwlock_init() 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 PTHREAD_RWLOCK_INITIALIZER can be used to initialize read-write locks which are statically allocated. The effect is equivalent to dynamic initialization by a call to pthread_rwlock_init() 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 PTHREAD_PROCESS_SHARED, the read-write lock must be allocated 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)). pthread_rwlock_destroy() 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 pthread_rwlock_init(). 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 VALUEUpon successful completion, pthread_rwlock_init() and pthread_rwlock_destroy() returns zero. Otherwise, an error number is returned to indicate the error (the errno variable is not set). ERRORSIf any of the following occur, the pthread_rwlock_init() function returns the corresponding error number:
If any of the following occur, the pthread_rwlock_destroy() function returns the corresponding error number:
WARNINGSThe space for the read-write lock must to be allocated before calling pthread_rwlock_init(). Undefined behavior may result if the process-shared attribute of attr is PTHREAD_PROCESS_SHARED and the space allocated for the read-write lock is not accessible to cooperating threads. SEE ALSOpthread_rwlock_rdlock(3T), pthread_rwlock_tryrdlock(3T), pthread_rwlock_trywrlock(3T), pthread_rwlock_unlock(3T), pthread_rwlock_wrlock(3T). |
Printable version | ||
|