Namespaces
Variants
Views
Actions

std::defer_lock, std::try_to_lock, std::adopt_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)
 
constexpr defer_lock_t defer_lock = std::defer_lock_t();
(since C++11)
constexpr try_to_lock_t try_to_lock = std::try_to_lock_t();
(since C++11)
constexpr adopt_lock_t adopt_lock = std::adopt_lock_t();
(since C++11)

std::defer_lock, std::try_to_lock and std::adopt_lock are instances of empty struct tag types std::defer_lock_t, std::try_to_lock_t and std::adopt_lock_t respectively. They are used to specify locking strategy.

Type Effect(s)
defer_lock_t do not acquire ownership of the mutex
try_to_t try to acquire ownership of the mutex without blocking
adopt_lock_t assume the calling thread already has ownership of the mutex

[edit] Example

[edit] See also

tag type used to specify locking strategy
(class) [edit]