名稱空間
變體
操作

cnd_timedwait

來自 cppreference.com
< c‎ | thread
在標頭檔案 <threads.h> 中定義
int cnd_timedwait( cnd_t* restrict cond, mtx_t* restrict mutex,
                   const struct timespec* restrict time_point );
(C11 起)

原子地解鎖 mutex 指向的互斥量,並在 cond 指向的條件變數上阻塞,直到執行緒被 cnd_signalcnd_broadcast 發出訊號,或直到達到 time_point 指向的基於 TIME_UTC 的時間點,或直到發生虛假喚醒。函式返回前會再次鎖定互斥量。

如果互斥量尚未被呼叫執行緒鎖定,則行為是未定義的。

目錄

[編輯] 引數

cond - 指向要阻塞的條件變數的指標
mutex - 指向在阻塞期間解鎖的互斥量的指標
time_point - 指向指定超時時間的物件指標

[編輯] 返回值

如果成功則為 thrd_success,如果在鎖定互斥量之前達到超時時間則為 thrd_timedout,如果發生錯誤則為 thrd_error

[編輯] 參考

  • C17 標準 (ISO/IEC 9899:2018)
  • 7.26.3.5 The cnd_timedwait function (p: 276-277)
  • C11 標準 (ISO/IEC 9899:2011)
  • 7.26.3.5 The cnd_timedwait function (p: 379-380)

[編輯] 參閱

在條件變數上阻塞
(函式) [編輯]
C++ 文件,關於 condition_variable::wait_until
C++ 文件,關於 condition_variable_any::wait_until