EN JA
PTHREAD_MUTEX_TIMEDLOCK(3)
PTHREAD_MUTEX_TIMEDLOCK(3) FreeBSD Library Functions Manual PTHREAD_MUTEX_TIMEDLOCK(3)

NAME

pthread_mutex_timedlocklock 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 *mutex, const struct timespec *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:
[ 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.

STANDARDS

The pthread_mutex_timedlock() function is expected to conform to ISO/IEC 9945-1:1996 (“POSIX.1”).
December 30, 2003 FreeBSD