|PTHREAD_RWLOCK_RDLOCK(3)||Library Functions Manual||PTHREAD_RWLOCK_RDLOCK(3)|
*lock, const struct
pthread_rwlock_rdlock() function acquires a read lock on lock provided that lock is not presently held for writing and no writer threads are presently blocked on the lock. If the read lock cannot be immediately acquired, the calling thread blocks until it can acquire the lock.
performs the same action, but will not wait beyond
abstime to obtain the lock before returning.
performs the same action as
but does not block if the lock cannot be immediately obtained (i.e., the
lock is held for writing or there are writers waiting).
A thread may hold multiple concurrent read locks. If so,
pthread_rwlock_unlock() must be called once for each
The results of acquiring a read lock while the calling thread holds a write lock are undefined.
pthread_rwlock_tryrdlock() functions will return zero. Otherwise an error number will be returned to indicate the error.
pthread_rwlock_tryrdlock() function will fail if:
will fail if:
pthread_rwlock_tryrdlock() functions may fail
pthread_rwlock_tryrdlock() functions are expected to conform to Version 2 of the Single UNIX Specification (“SUSv2”).
pthread_rwlock_rdlock() function first appeared in FreeBSD 3.0 and OpenBSD 2.5. The
pthread_rwlock_timedrdlock() function first appeared in OpenBSD 4.8.
|February 13, 2019||OpenBSD-current|