|HP-UX Reference > P
HP-UX 11i Version 3: February 2007
pthread_rwlockattr_init(), pthread_rwlockattr_destroy() — initialize or destroy a read-write lock attributes object
int pthread_rwlockattr_init( pthread_rwlockattr_t *attr );
int pthread_rwlockattr_destroy( pthread_rwlockattr_t *attr );
pthread_rwlockattr_init() initializes the read-write lock attributes object attr with the default value for all attributes. The attributes object describes a read-write lock in detail and is passed to the read-write lock initialization function.
When a read-write lock attributes object is used to initialize a read-write lock, the values of the individual attributes determine the characteristics of the new read-write lock. Attributes objects act like additional parameters to object initialization.
After a read-write lock attributes object has been used to initialize one or more read-write lock, any function affecting the attributes object does not affect the previously initialized read-write locks.
The read-write lock attributes and their default values are:
If an initialized read-write lock attributes object is reinitialized, undefined behavior results.
pthread_rwlockattr_destroy() destroys the read-write lock attributes object attr. The destroyed read-write lock attributes object ceases to exist and its resources are reclaimed. Referencing the object after it has been destroyed results in undefined behavior. A destroyed read-write lock attributes object can be reinitialized using the function pthread_rwlockattr_init().
Read-write locks which have been already initialized using this attributes object are not affected by the destruction of the read-write lock attributes object.
Upon successful completion, pthread_rwlockattr_init() and pthread_rwlockattr_destroy() return zero. Otherwise, an error number is returned to indicate the error (the errno variable is not set).
For each of the following conditions, if the condition is detected, the pthread_rwlockattr_init() and pthread_rwlockattr_destroy() functions return the corresponding error number:
pthread_create(3T), pthread_rwlockattr_getpshared(3T), pthread_rwlockattr_setpshared(3T), pthread_rwlock_init(3T).