tail head cat sleep
QR code linking to this page

Manual Pages  — PTHREAD_RWLOCK_TIMEDRDLOCK

NAME

pthread_rwlock_timedrdlock – acquire a read-write lock for reading or give up after a specified period

CONTENTS

LIBRARY

POSIX Threads Library (libpthread, -lpthread)

SYNOPSIS

#include <pthread.h>

int
pthread_rwlock_timedrdlock(pthread_rwlock_t *restrict rwlock, const struct timespec *restrict abs_timeout);

DESCRIPTION

This function acquires a read lock on the read-write lock rwlock. However, if the lock cannot be acquired without waiting for another thread to unlock the lock, this wait shall be terminated when abs_timeout expires.

A thread may hold multiple concurrent read locks. The pthread_rwlock_unlock(3) function must be called once for each lock acquired.

If the thread should be interrupted by a signal, the pthread_rwlock_timedrdlock() function will be automatically restarted after the thread returns from the signal handler.

The calling thread may deadlock if at the time the call is made it holds a write lock on rwlock. The results are undefined if this function is called with an uninitialized read-write lock.

IMPLEMENTATION NOTES

To prevent writer starvation, writers are favored over readers.

RETURN VALUES

If successful, the pthread_rwlock_timedrdlock() function will return zero. Otherwise, an error number will be returned to indicate the error.

This function shall not return an error code of EINTR.

ERRORS

The pthread_rwlock_timedrdlock() function will fail if:
[ETIMEDOUT]
  The lock could not be acquired before the specified timeout expired.

The pthread_rwlock_timedrdlock() function may fail if:
[EAGAIN]
  The read lock could not be acquired because the maximum number of read locks for rwlock would be exceeded.
[EDEADLK]
  The calling thread already holds a write lock on rwlock.
[EINVAL]
  The value specified by rwlock does not refer to an initialized read-write lock object, or the abs_timeout nanosecond value is less than zero or greater than or equal to 1 billion.

SEE ALSO

pthread_rwlock_init(3), pthread_rwlock_timedwrlock(3), pthread_rwlock_unlock(3)

STANDARDS

The pthread_rwlock_timedrdlock() function is expected to conform to IEEE Std 1003.1-96 ("POSIX.1").

HISTORY

The pthread_rwlock_timedrdlock() function first appeared in FreeBSD 5.2 .

PTHREAD_RWLOCK_TIMEDRDLOCK (3) August 17, 2018

tail head cat sleep
QR code linking to this page


Please direct any comments about this manual page service to Ben Bullock. Privacy policy.