FreeBSD manual
download PDF document: pthread_mutex_timedlock.3.pdf
PTHREAD_MUTEX_TIMEDLOCK(3) FreeBSD Library Functions Manual
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
error 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
expired.
[EAGAIN] The mutex could not be acquired because the maximum
number 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
FreeBSD 14.0-RELEASE-p11 August 7, 2019 FreeBSD 14.0-RELEASE-p11