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)
[編集] 関連項目
| (C11) |
秒とナノ秒での時間 (構造体) |
| (C11) |
ミューテックスがロックされるまでブロックする (関数) |
| (C11) |
ミューテックスをロックするか、既にロックされている場合はブロックせずに戻る (関数) |
| (C11) |
ミューテックスのロックを解除する (関数) |
| C++ ドキュメント (timed_mutex::try_lock_until)
| |
| C++ ドキュメント (recursive_timed_mutex::try_lock_until)
| |
[編集] 外部リンク
| GNU GCC Libc Manual: ISO-C-Mutexes |