cnd_timedwait
提供: cppreference.com
<tbody>
</tbody>
| ヘッダ <threads.h> で定義
|
||
int cnd_timedwait( cnd_t* restrict cond, mtx_t* restrict mutex, const struct timespec* restrict time_point ); |
(C11以上) | |
mutex の指すミューテックスのロックを解除し、スレッドが cnd_signal または cnd_broadcast によって通知されるまで、または time_point の指す TIME_UTC ベースの時点に達するまで、またはスプリアスウェイクアップが発生するまで、 cond の指す条件変数でブロックします。 この操作はアトミックに行われます。 ミューテックスは関数が戻る前に再びロックされます。
ミューテックスが呼び出し元スレッドによってあらかじめロックされていない場合、動作は未定義です。
引数
| cond | - | ブロックする条件変数を指すポインタ |
| mutex | - | ブロック期間中ロック解除するミューテックスを指すポインタ |
| time_point | - | 達するまで待機するタイムアウト時間を指定するオブジェクトを指すポインタ |
戻り値
成功した場合は thrd_success、ミューテックスがロックされる前にタイムアウト時間に達した場合は thrd_timedout、エラーが発生した場合は thrd_error。
参考文献
- C11 standard (ISO/IEC 9899:2011):
- 7.26.3.5 The cnd_timedwait function (p: 379-380)
関連項目
(C11) |
条件変数でブロックします (関数) |
condition_variable::wait_until の C++リファレンス
| |
condition_variable_any::wait_until の C++リファレンス
| |