std::unique_lock<Mutex>::swap

< cpp‎ | thread‎ | unique lock
void swap( unique_lock& other ) noexcept;
(since C++11)

Exchanges the internal states of the lock objects.

Parameters

other - the lock to swap the state with

Return value

(none)

Example

#include <iostream>
#include <mutex>
 
int main()
{
    std::mutex mtx1;
    std::unique_lock<std::mutex> guard1(mtx1);
    std::unique_lock<std::mutex> guard2;
    guard2.swap(guard1);
 
    if (!guard1 && guard2)
    {
        std::cout << "swaped success\n";
    }
 
    return 0;
}

Output:

swaped success

See also

specialization of std::swap for unique_lock
(function template)