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:

POSIX 1003.1

Safety:
Cancellation pointNo
Signal handlerYes
ThreadYes
Page updated: