NAME
pthread_mutex_timedlock
—
lock a mutex without blocking
indefinitely
LIBRARY
library “libpthread”
SYNOPSIS
#include
<pthread.h>
#include <time.h>
int
pthread_mutex_timedlock
(pthread_mutex_t
* restrict mutex, const
struct timespec * restrict abs_timeout);
DESCRIPTION
Thepthread_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:
- [
EINVAL
] - 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.
SEE ALSO
pthread_mutex_destroy(3), pthread_mutex_getprioceiling(3), pthread_mutex_init(3), pthread_mutex_lock(3), pthread_mutex_setprioceiling(3), pthread_mutex_trylock(3), pthread_mutex_unlock(3)
STANDARDS
The pthread_mutex_timedlock
() function is
expected to conform to ISO/IEC 9945-1:1996
(“POSIX.1”).