pthread_rwlock_destroy()--Destroy Read/Write Lock
Syntax:
#include <pthread.h> int pthread_rwlock_destroy(pthread_rwlock_t *rwlock);Service Program Name: QP0WPTHR
Default Public Authority: *USE
Threadsafe: Yes
Signal Safe: Yes
The pthread_rwlock_destroy() function destroys the named read/write lock. The destroyed read/write lock can no longer be used.
If pthread_rwlock_destroy() is called on a read/write lock on a mutex that is locked by another thread for either reading or writing, the request fails with an EBUSY error.
If pthread_rwlock_destroy() is used by a thread when it owns the read/write lock, and other threads are waiting for the read/write lock to become available (with calls to pthread_rwlock_rdlock(), pthread_rwlock_wrlock(), pthread_rwlock_timedrdlock_np() or pthread_rwlock_timedwrlock_np() APIs), the read/write lock is destroyed safely, and the waiting threads wake up with the EDESTROYED error. Threads calling pthread_rwlock_tryrdlock() or pthread_rwlock_trywrlock() return with either the EBUSY or EINVAL error, depending on when they called those functions.
Once a read/write lock is created, it cannot be validly copied or moved to a new location.
Authorities and Locks
None.
Parameters
- rwlock
- (Input) Address of the read/write lock to be destroyed
Return Value
- 0
- pthread_rwlock_destroy() was successful.
- value
- pthread_rwlock_destroy() was not successful. value is set to indicate the error condition.
Error Conditions
If pthread_rwlock_destroy() was not successful, the error condition returned usually indicates one of the following errors. Under some conditions, the value returned could indicate an error other than those listed here.
- [EINVAL]
The value specified for the argument is not correct.
Related Information
- The <pthread.h> header file. See Header files for Pthread functions.
- pthread_rwlock_init()--Initialize Read/Write Lock
Example
See the pthread_rwlock_init() example.
API introduced: V4R3
[ Back to top | Pthread APIs | APIs by category ]