From cppreference.com
intmtx_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
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)
Parameters
mutex - pointer to the mutex to lock Return value
if successful,
if the mutex has already been locked or due to a spurious failure to acquire an available mutex,
if an error occurs.
Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C standards.
DR Applied to Behavior as published Correct behavior
C11 mtx_trylock was not allowed to fail spuriously allowed 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)
See also
(C11)
blocks until locks a mutex
(function)
(C11)
blocks until locks a mutex or times out
(function)
(C11)
unlocks a mutex
(function)
for mutex::try_lock
for timed_mutex::try_lock
for recursive_mutex::try_lock
for recursive_timed_mutex::try_lock