pthread_rwlock_timedrdlock(3)

MPaTnHuRaElAD_RWLOCK_TIMEDRDLOCK(3)

NAME

pthread_rwlock_timedrdlock - acquire a read-write lock for
reading or

give up after a specified period

LIBRARY

library ``libpthread'' library ``libthr''

SYNOPSIS

#include <pthread.h>
int
pthread_rwlock_timedrdlock(pthread_rwlock_t *rwlock,
        const struct timespec *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 an
other 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 read
ers.

RETURN VALUES

If successful, the pthread_rwlock_timedrdlock() function
will return

zero. Otherwise, an error number will be returned to indi
cate 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 be
cause the maxi
mum 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

ISO/IEC 9945-1:1996 (``POSIX.1'').

HISTORY

The pthread_rwlock_timedrdlock() function first appeared in
FreeBSD 5.2.
BSD January 16, 2004
Copyright © 2010-2025 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout