名前空間
変種
操作

mtx_timedlock

From cppreference.com
ヘッダ<threads.h>で定義
int mtx_timedlock( mtx_t *restrict mutex,
                   const struct timespec *restrict time_point );
(C11 以降)

現在のスレッドを、mutex がロックされるまで、または time_point で指定された TIME_UTC ベースの絶対カレンダー時刻に達するまでブロックします。

この関数は絶対時刻を取るため、期間が必要な場合は、カレンダー時刻を自分で計算する必要があります。

現在のスレッドが既に mutex をロックしており、かつ mutex が再帰的でない場合、動作は未定義です。

mutex がタイムアウトをサポートしていない場合、動作は未定義です。

同じ mutex に対する mtx_unlock の以前の呼び出しは、この操作と *同期* します(この操作が成功した場合)、そして任意の mutex に対するすべてのロック/アンロック操作は、単一の全順序を形成します(アトミックの変更順序に似ています)。

目次

[編集] パラメータ

mutex - ロックする mutex へのポインタ
time_point - タイムアウトを待機する絶対カレンダー時刻へのポインタ

[編集] 戻り値

thrd_success (成功時)、thrd_timedout (mutex がロックされる前にタイムアウト時刻に達した場合)、thrd_error (エラーが発生した場合)。

[編集] 参照

  • C17標準 (ISO/IEC 9899:2018)
  • 7.26.4.4 The mtx_timedlock function (p: 278)
  • C11標準 (ISO/IEC 9899:2011)
  • 7.26.4.4 The mtx_timedlock function (p: 381-382)

[編集] 関連項目

秒とナノ秒での時間
(構造体)[編集]
ミューテックスがロックされるまでブロックする
(関数) [編集]
ミューテックスをロックするか、既にロックされている場合はブロックせずに戻る
(関数) [編集]
ミューテックスのロックを解除する
(関数) [編集]
C++ ドキュメント (timed_mutex::try_lock_until)
C++ ドキュメント (recursive_timed_mutex::try_lock_until)

[編集] 外部リンク

GNU GCC Libc Manual: ISO-C-Mutexes
English 日本語 中文(简体) 中文(繁體)