pthread_rwlock_wrlock()
Acquire an exclusive (write) lock on a read-write lock
Synopsis:
#include <pthread.h>
int pthread_rwlock_wrlock( pthread_rwlock_t* rwl );
Arguments:
- rwl
- A pointer to a pthread_rwlock_t object that you want to lock for writing.
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
The pthread_rwlock_wrlock() function acquires an exclusive (write) lock on the read-write lock referenced by rwl. If the read-write lock is already locked in shared or exclusive mode by another thread, the calling thread blocks until all locks (shared or exclusive) are released. If the calling thread has already locked the lock in exclusive mode, the function call fails. If the calling thread has locked the lock in shared mode, the call blocks. Thus, the QNX OS implementation of read-write locks does not support upgrading a shared (read) lock to an exclusive (write) lock.
If a signal is delivered to a thread waiting to lock a read-write lock, it resumes waiting for the lock after returning from the signal handler.
Returns:
- EOK
- Success.
- EDEADLK
- The calling thread already has an exclusive lock for rwl.
- EFAULT
- A fault occurred when the kernel tried to access rwl.
- EINVAL
- The read-write lock rwl is invalid.
Examples:
See
An example of synchronization
in the Processes and Threads
chapter of Getting Started with the QNX OS.
Classification:
| Safety: | |
|---|---|
| Cancellation point | Yes |
| Signal handler | Yes |
| Thread | Yes |
