mtx_trylock
From cppreference.com
 
 
 
 
 
  C 
 Concurrency support (C11)
 Concurrency support library 
 
  Atomic operations 
  Mutual exclusion  Condition variables  Thread-local storage 
 Threads
(until C23)
 Atomic flags
 Memory ordering
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)
[edit] Parameters
 mutex
 -
 pointer to the mutex to lock
[edit] Return value
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.
[edit] Defect reports
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_trylockwas not allowed to fail spuriously | allowed | 
[edit] References
- C17 standard (ISO/IEC 9899:2018):
- 7.26.4.5 The mtx_trylock function (p: 278-279)
 
- C11 standard (ISO/IEC 9899:2011):
- 7.26.4.5 The mtx_trylock function (p: 382)
 
[edit] See also
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