Namespaces
Variants

cnd_timedwait

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

mutex が指すミューテックスをアトミックにアンロックし、 cond が指す条件変数に対して、スレッドが cnd_signal または cnd_broadcast によって通知されるか、 TIME_UTC ベースの時間ポイントを指す time_point が示す時刻に達するか、または偽のウェイクアップが発生するまでブロックします。関数が戻る前にミューテックスは再度ロックされます。

呼び出しスレッドによって既にロックされていないミューテックスの場合、動作は未定義です。

目次

パラメータ

cond - ブロック対象の条件変数へのポインタ
mutex - ブロック期間中にアンロックするミューテックスへのポインタ
time_point - 待機終了時刻を指定するオブジェクトへのポインタ

戻り値

thrd_success 成功した場合、 thrd_timedout ミューテックスがロックされる前にタイムアウト時間に達した場合、または thrd_error エラーが発生した場合。

参考文献

  • C17規格 (ISO/IEC 9899:2018):
  • 7.26.3.5 cnd_timedwait関数 (p: 276-277)
  • C11規格 (ISO/IEC 9899:2011):
  • 7.26.3.5 cnd_timedwait関数 (p: 379-380)

関連項目

条件変数でブロックする
(関数)
C++ documentation for condition_variable::wait_until
C++ documentation for condition_variable_any::wait_until
翻訳のポイント: - HTMLタグ、属性、C++関連の用語(cnd_wait、condition_variable、wait_untilなど)は翻訳せず保持 - 「blocks on a condition variable」→「条件変数でブロックする」 - 「(function)」→「(関数)」 - 「for」はそのまま保持(技術文脈では「for」がよく使用されるため) - その他のテキスト構造とフォーマットは完全に保持