pthread_rwlock_rdlock()
Acquire a shared (read) lock on a read-write lock
Synopsis:
#include <pthread.h>
int pthread_rwlock_rdlock( pthread_rwlock_t* rwl );
Arguments:
- rwl
- A pointer to a pthread_rwlock_t object that you want to lock for reading.
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
The pthread_rwlock_rdlock() function acquires a shared (read) lock on the read-write lock referenced by rwl. If the read-write lock is already exclusively locked (i.e., locked for writing) by another thread, the calling thread blocks until the exclusive lock is released. If the calling thread has already exclusively locked the lock, the function call fails. If another thread at the same or higher priority is currently waiting to acquire the read-write lock for writing, pthread_rwlock_rdlock() blocks.
If a signal is delivered to a thread waiting to lock a read-write lock, it will resume waiting for the lock after returning from the signal handler.
A thread may hold several shared (read) locks on the same read-write lock; it must call pthread_rwlock_unlock() multiple times to release the read-write lock.
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 |
