名稱空間
變體
操作

mtx_timedlock

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

阻塞當前執行緒,直到 mutex 指向的互斥鎖被鎖定,或者直到 time_point 指向的基於 TIME_UTC 的絕對日曆時間點已經到達。

由於此函式接受一個絕對時間,如果需要一個持續時間,則必須手動計算日曆時間點。

如果當前執行緒已經鎖定了互斥鎖且該互斥鎖不是遞迴的,則行為是未定義的。

如果互斥鎖不支援超時,則行為是未定義的。

先前對同一互斥鎖的 mtx_unlock 呼叫與此操作(如果此操作成功)同步,並且任何給定互斥鎖上的所有鎖定/解鎖操作形成一個單一的總順序(類似於原子的修改順序)

目錄

[編輯] 引數

mutex - 指向要鎖定的互斥量的指標
time_point - 指向絕對日曆時間的指標,等待超時直到該時間

[編輯] 返回值

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

[編輯] 參考

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

[編輯] 另請參閱

秒和納秒時間
(struct)[編輯]
阻塞直到鎖定互斥體
(function) [編輯]
鎖定互斥體,如果已鎖定則不阻塞返回
(function) [編輯]
解鎖互斥體
(function) [編輯]
C++ documentation for timed_mutex::try_lock_until
C++ documentation for recursive_timed_mutex::try_lock_until

[編輯] 外部連結

GNU GCC Libc 手冊: ISO-C-Mutexes