Gets and sets process-shared attribute of read-write lock attributes object.
Threads Library (libpthreads.a)
int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *attrint *pshared ); int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *attr, int pshared);
The process-shared attribute is set to PTHREAD_PROCESS_SHARED to permit a read-write lock to be operated upon by any thread that has access to the memory where the read-write lock is allocated, even if the read-write lock is allocated in memory that is shared by multiple processes. If the process-shared attribute is PTHREAD_PROCESS_PRIVATE, the read-write lock will only be operated upon by threads created within the same process as the thread that initialised the read-write lock; if threads of differing processes attempt to operate on such a read-write lock, the behaviour is undefined. The default value of the process-shared attribute is PTHREAD_PROCESS_PRIVATE.
The pthread_rwlockattr_getpshared function obtains the value of the process-shared attribute from the initialised attributes object referenced by attr. The pthread_rwlockattr_setpshared function is used to set the process-shared attribute in an initialised attributes object referenced by attr.
If successful, the pthread_rwlockattr_setpshared function returns zero. Otherwise, an error number is returned to indicate the error.
Upon successful completion, the pthread_rwlockattr_getpshared returns zero and stores the value of the process-shared attribute of attr into the object referenced by the pshared parameter. Otherwise an error number is returned to indicate the error.
The pthread_rwlockattr_getpshared and
pthread_rwlockattr_setpshared functions will fail if:
|EINVAL||The value specified by attr is invalid.|
The pthread_rwlockattr_setpshared function will fail if:
|EINVAL||The new value specified for the attribute is outside the range of legal values for that attribute.|
Similar functions are being developed by IEEE PASC. In keeping with its objective of ensuring that CAE Specifications are fully aligned with formal standards, The Open Group intends to add any new interfaces adopted by an official IEEE standard in this area.
The pthread.h file.
The pthread_rwlock_init (pthread_rwlock_init, pthread_rwlock_destroy Subroutine), pthread_rwlock_unlock (pthread_rwlock_unlock Subroutine), pthread_rwlock_wrlock (pthread_rwlock_wrlock or pthread_rwlock_trywrlock Subroutines), pthread_rwlock_rdlock (pthread_rwlock_rdlock or pthread_rwlock_tryrdlock Subroutines), pthread_rwlockattr_init (pthread_rwlockattr_init or pthread_rwlockattr_destroy Subroutines) subroutines.