Namespaces
Variants
Views
Actions

std::unique_lock::unique_lock

From cppreference.com
unique_lock();
(1) (since C++11)
unique_lock( unique_lock&& other );
(2) (since C++11)
explicit unique_lock( mutex_type& m );
(3) (since C++11)
unique_lock( mutex_type& m, std::defer_lock_t t );
(4) (since C++11)
unique_lock( mutex_type& m, std::try_to_lock_t t );
(5) (since C++11)
unique_lock( mutex_type& m, std::adopt_lock_t t );
(6) (since C++11)
template< class Rep, class Period >

unique_lock( mutex_type& m,

             const std::chrono::duration<Rep,Period>& timeout_duration );
(7) (since C++11)
template< class Clock, class Period >

unique_lock( mutex_type& m,

             const std::chrono::time_point<Clock,Duration>& timeout_time );
(8) (since C++11)

Constructs the lock optionally locking the supplied mutex.

1) Constructs the lock with no associated mutex.

2) Move constructor. Initializes the state with the contents of other.

3-8) Constructs the lock with m as the associated mutex. Additionally:

3) Locks the associated mutex by calling m.lock().
4) Does not lock the associated mutex.
5) Tries to lock the associated mutex without blocking by calling m.trylock().
6) Assumes the calling thread already owns m.
7) Tries to lock the associated mutex. Blocks until specified timeout_duration has elapsed or the lock is acquired, whichever comes first. May block for longer than timeout_duration.
8) Tries to lock the associated mutex. Blocks until specified timeout_time has been reached or the lock is acquired, whichever comes first. May block for longer than until timeout_time has been reached.

[edit] Parameters

other - another unique_lock to initialize the state with
m - mutex to associate with the lock and optionally acquire ownership of
t - tag parameter used to select constructors with different locking strategies
timeout_duration - maximum duration to block for
timeout_time - maximum time point to block until

[edit] Exceptions

1-2)
noexcept specification:  
noexcept
  (since C++11)

3) 4)
noexcept specification:  
noexcept
  (since C++11)

5-8)