home | help
PTHREAD_MUTEX_TIMEDLOCK(3)   Library Functions Manual PTHREAD_MUTEX_TIMEDLOCK(3)

NAME
     pthread_mutex_timedlock -- lock a mutex without blocking indefinitely

LIBRARY
     POSIX Threads Library (libpthread, -lpthread)

SYNOPSIS
     #include <pthread.h>
     #include <time.h>

     int
     pthread_mutex_timedlock(pthread_mutex_t *restrict mutex,
	 const struct timespec *restrict abs_timeout);

DESCRIPTION
     The  pthread_mutex_timedlock()  function will lock mutex.	If it is already
     locked the calling thread will block until the mutex becomes  available  or
     the timeout, specified by abs_timeout, expires.  The time of the timeout is
     an absolute time and is not relative to the current time.

RETURN VALUES
     If successful, pthread_mutex_timedlock() will return zero, otherwise an er-
     ror number will be returned to indicate the error.

ERRORS
     The pthread_mutex_timedlock() function will fail if:

     [Er ENOTRECOVERABLE]
			The mutex was created with the protocol attribute having
			the  value PTHREAD_PRIO_PROTECT and the calling thread's
			priority is higher than  the  mutex's  current	priority
			ceiling.

     [EINVAL]		The   process	or   thread   would  have  blocked,  and
			abs_timeout specified a nanosecond value less than  zero
			or greater than or equal to 1 billion.

     [EINVAL]		The mutex parameter is invalid.

     [ETIMEDOUT]	The  mutex  could  not	be locked before the timeout ex-
			pired.

     [EAGAIN]		The mutex could not be acquired because the maximum num-
			ber of recursive locks for the mutex has been exceeded.

     [EDEADLK]		The current thread already owns the mutex.

     [EOWNERDEAD]	The argument mutex points to  a  robust  mutex	and  the
			process containing the previous owning thread terminated
			while  holding	the mutex lock.  The lock was granted to
			the caller and it is up to the new  owner  to  make  the
			state consistent.

     [ENOTRECOVERABLE]	The state protected by the mutex is not recoverable.

SEE ALSO
     pthread_mutex_consistent(3),      pthread_mutex_destroy(3),     pthread_mu-
     tex_init(3), pthread_mutex_lock(3),  pthread_mutex_trylock(3),  pthread_mu-
     tex_unlock(3)

STANDARDS
     The  pthread_mutex_timedlock()  function  is expected to conform to ISO/IEC
     9945-1:1996 ("POSIX.1").

FreeBSD 15.1			 August 7, 2019       PTHREAD_MUTEX_TIMEDLOCK(3)

home | help