mtx_timedlock
來自 cppreference.com
在標頭檔案 <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)
[編輯] 另請參閱
(C11) |
秒和納秒時間 (struct) |
(C11) |
阻塞直到鎖定互斥體 (function) |
(C11) |
鎖定互斥體,如果已鎖定則不阻塞返回 (function) |
(C11) |
解鎖互斥體 (function) |
C++ documentation for timed_mutex::try_lock_until
| |
C++ documentation for recursive_timed_mutex::try_lock_until
|
[編輯] 外部連結
GNU GCC Libc 手冊: ISO-C-Mutexes |