Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
PTHREAD_RWLOCK_TIME... FreeBSD Library Functions Manual	PTHREAD_RWLOCK_TIME...

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

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.	How-
     ever, if the lock cannot be acquired without waiting for another thread
     to	unlock the lock, this wait shall be terminated when abs_timeout	ex-
     pires.

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

     If	the thread should be interrupted by a signal, the
     pthread_rwlock_timedrdlock() function will	be automatically restarted af-
     ter 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	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.

FreeBSD	13.0			August 17, 2018			  FreeBSD 13.0

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | IMPLEMENTATION NOTES | RETURN VALUES | ERRORS | SEE ALSO | STANDARDS | HISTORY

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=pthread_rwlock_timedrdlock&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help