pthread_rwlock_unlock()
QNX SDP8.0C Library ReferenceAPIDeveloper
Unlock a read-write lock
Synopsis:
#include <pthread.h>
int pthread_rwlock_unlock( pthread_rwlock_t* rwl );
Arguments:
- rwl
- A pointer to a pthread_rwlock_t object that you want to unlock.
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
The pthread_rwlock_unlock() function releases (unlocks) a read-write lock referenced by rwl.
CAUTION:
The read-write lock should have been previously locked by the calling thread.
If the calling thread doesn't hold the lock, no error status is returned, and
the behavior of this read-write lock is now undefined.
The read-write lock may become available for any threads
that are blocked on it, depending in which mode (exclusive or shared) it was locked, and
in which mode the blocked threads are trying to acquire it:
- If the read-write lock was exclusively locked, then when the function call succeeds, the lock becomes available to any thread that wants to read or write (and hence, is trying to acquire the lock in either mode).
- If the lock was shared-locked and this function call releases the last shared lock, then the lock becomes available to any thread that wants to write (and hence, is trying to acquire the lock in exclusive mode); the lock remains available to any thread that wants to read (and hence, is trying to acquire it in shared mode).
- If the lock was shared-locked but it was NOT the last shared lock, it remains available to other threads that want to read but does NOT become available to any thread that wants to write.
Returns:
- EOK
- Success.
- EFAULT
- A fault occurred when the kernel tried to access rwl.
- EINVAL
- The read-write lock rwl is invalid.
- EPERM
- Another thread has exlusively locked rwl.
Examples:
See
An example of synchronization
in the Processes and Threads
chapter of Getting Started with the QNX OS.
Classification:
| Safety: | |
|---|---|
| Cancellation point | No |
| Signal handler | Yes |
| Thread | Yes |
Page updated:
