PTHREAD_MUTEX_TIMEDLOCK(3) | FreeBSD Library Functions Manual | PTHREAD_MUTEX_TIMEDLOCK(3) |
名称
pthread_mutex_timedlock — 無期限にブロックせずに mutex をロックするライブラリ
POSIX Threads Library (libpthread, -lpthread)書式
#include < pthread.h>#include < time.h>
int
pthread_mutex_timedlock( pthread_mutex_t *mutex, const struct timespec *abs_timeout);
解説
pthread_mutex_timedlock() 関数は、 mutex をロックします。 mutex が既にロックされている場合には、呼び出しているスレッドは、その mutex が利用可能になるか、abs_timeout で指定された時間切れまでブロックされます。時間切れの時間 (abs_timeout) は、現在時刻とは無関係な絶対時刻です。戻り値
成功したなら、 pthread_mutex_timedlock() は、0 を返します。その他の場合は、エラーを示すエラー番号が返されます。エラー
pthread_mutex_timedlock() 関数は、次の場合に失敗します:- [ EINVAL]
- mutex が、値 PTHREAD_PRIO_PROTECT を含むプロトコル属性で作成され、呼び出しスレッドの優先度が mutex の現在の優先度より高いです。
- [ EINVAL]
- プロセスまたはスレッドがブロックされています。そして abs_timeout で指定されたナノ秒の値が、0 より小さいか 10 億以上です。
- [ EINVAL]
- mutex パラメータが無効です。
- [ ETIMEDOUT]
- mutex を、制限時間内にロックすることができませんでした。
- [ EAGAIN]
- mutex の再帰ロックの最大数を超えたため、 mutex を取得することができませんでした。
- [ EDEADLK]
- 現在のスレッドが、既に mutex を所有しています。
関連項目
pthread_mutex_destroy(3), pthread_mutex_init(3), pthread_mutex_lock(3), pthread_mutex_trylock(3), pthread_mutex_unlock(3)規格
pthread_mutex_timedlock() 関数は、 ISO/IEC 9945-1:1996 (“POSIX.1”) に適合する予定です。December 30, 2003 | FreeBSD |