Defined in header <threads.h>  |  ||
|---|---|---|
 int mtx_trylock( mtx_t *mutex );  |  (since C11) | 
Tries to lock the mutex pointed to by mutex without blocking. Returns immediately if the mutex is already locked.
Prior calls to mtx_unlock on the same mutex synchronize-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)
| 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)  | 
|  
 (C11)   |   blocks until locks a mutex or times out  (function)  | 
|  
 (C11)   |   unlocks a mutex  (function)  | 
 C++ documentation for mutex::try_lock  | 
|
 C++ documentation for timed_mutex::try_lock  | 
|
 C++ documentation for recursive_mutex::try_lock  | 
|
 C++ documentation for recursive_timed_mutex::try_lock  | 
|
    © cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
    https://en.cppreference.com/w/c/thread/mtx_trylock