DragonFly On-Line Manual Pages

Search: Section:  

PTHREAD_MUTEX_TIME... DragonFly Library Functions Manual PTHREAD_MUTEX_TIME...


pthread_mutex_timedlock -- lock a mutex without blocking indefinitely


POSIX Threads Library (libpthread, -lpthread)


#include <pthread.h> #include <time.h> int pthread_mutex_timedlock(pthread_mutex_t * restrict mutex, const struct timespec * restrict abs_timeout);


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.


If successful, pthread_mutex_timedlock() will return zero, otherwise an error number will be returned to indicate the error.


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.


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)


The pthread_mutex_timedlock() function is expected to conform to ISO/IEC 9945-1:1996 (``POSIX.1''). DragonFly 5.1 February 22, 2018 DragonFly 5.1

Search: Section: