|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Defined in header <threads.h> | ||
int mtx_trylock(mtx_t*mutex); | (since C11) | |
Tries to lock the mutex pointed to bymutex without blocking. Returns immediately if the mutex is already locked.
Prior calls tomtx_unlock on the same mutexsynchronize-with this operation (if this operation succeeds), and all lock/unlock operations on any given mutex form a single total order (similar to the modification order of an atomic)
Contents |
| mutex | - | pointer to the mutex to lock |
thrd_success if successful,thrd_busy if the mutex has already been locked or due to a spurious failure to acquire an available mutex,thrd_error if an error occurs.
The following behavior-changing defect reports were applied retroactively to previously published C standards.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| DR 470 | C11 | mtx_trylock was not allowed to fail spuriously | allowed |
(C11) | blocks until locks a mutex (function)[edit] |
(C11) | blocks until locks a mutex or times out (function)[edit] |
(C11) | unlocks a mutex (function)[edit] |
C++ documentation formutex::try_lock | |
C++ documentation fortimed_mutex::try_lock | |
C++ documentation forrecursive_mutex::try_lock | |
C++ documentation forrecursive_timed_mutex::try_lock | |