std::lock_guard<Mutex>:: lock_guard

From cppreference.com
Concurrency support library
Threads
(C++11)
(C++20)
this_thread namespace
(C++11)
(C++11)
Cooperative cancellation
Mutual exclusion
Generic lock management
Condition variables
(C++11)
Semaphores
Latches and Barriers
(C++20)
(C++20)
Futures
(C++11)
(C++11)
(C++11)
Safe Reclamation
Hazard Pointers
Atomic types
(C++11)
(C++20)
Initialization of atomic types
(C++11) (deprecated in C++20)
(C++11) (deprecated in C++20)
Memory ordering
Free functions for atomic operations
Free functions for atomic flags
std::lock_guard
Member functions
lock_guard::lock_guard
explicit lock_guard ( mutex_type & m ) ;
(1) (since C++11)
lock_guard ( mutex_type & m, std:: adopt_lock_t t ) ;
(2) (since C++11)
lock_guard ( const lock_guard & ) = delete ;
(3) (since C++11)

Acquires ownership of the given mutex m .

1) Effectively calls m. lock ( ) .
2) Acquires ownership of the mutex m without attempting to lock it. The behavior is undefined if the current thread does not hold a non-shared lock (i.e., a lock acquired by lock , try_lock , try_lock_for , or try_lock_until ) on m .
3) Copy constructor is deleted.

The behavior is undefined if m is destroyed before the lock_guard object is.

Parameters

m - mutex to acquire ownership of
t - tag parameter used to select non-locking version of the constructor

Exceptions

1) Throws any exceptions thrown by m. lock ( ) .
2) Throws nothing.