std::try_lock

From cppreference.com
 
 
Thread support library
Threads
thread (C++11)
this_thread namespace
get_id (C++11)
yield (C++11)
sleep_for (C++11)
sleep_until (C++11)
Mutual exclusion
mutex (C++11)
timed_mutex (C++11)
Generic lock management
lock_guard (C++11)
unique_lock (C++11)
defer_lock_t
try_to_lock_t
adopt_lock_t
(C++11)
(C++11)
(C++11)
lock (C++11)
try_lock (C++11)
defer_lock
try_to_lock
adopt_lock
(C++11)
(C++11)
(C++11)
Condition variables
condition_variable (C++11)
condition_variable_any (C++11)
notify_all_at_thread_exit (C++11)
cv_status (C++11)
Futures
promise (C++11)
future (C++11)
shared_future (C++11)
packaged_task (C++11)
async (C++11)
launch (C++11)
future_status (C++11)
future_error (C++11)
future_category (C++11)
future_errc (C++11)
 
Defined in header <mutex>
template< class Lockable1, class Lockable2, class LockableN... >
int try_lock( Lockable1& lock1, Lockable2& lock2, LockableN& lockn... );
(since C++11)

Tries to lock each of the given lockable objects lock1, lock2, ..., lockn by calling try_lock() in order beginning at the first. If a call to try_lock() fails, unlock() is called for any locked objects and a 0-based index of the object that failed to lock, is returned.

If a call to try_lock() results in an exception, unlock() is called for any locked objects before rethrowing.

Contents

[edit] Parameters

lock1, lock2, ... , lockn - the lockable objects to lock

[edit] Return value

-1 on success or 0-based index value of the object that failed to lock.

[edit] Example

[edit] See also

(C++11)
locks specified mutexes/locks, blocks if at least one is unavailable
(function template)