Namespaces
Variants
Views
Actions

std::recursive_mutex::try_lock

From cppreference.com
bool try_lock();
(since C++11)

Tries to lock the mutex. Returns immediately. On successful lock acquisition returns true, otherwise returns false.

Contents

[edit] Parameters

(none)

[edit] Return value

true if the lock was acquired successfully, otherwise false.

[edit] Exceptions

[edit] Example

This example shows lock, try_lock and unlock in action

#include <iostream>
#include <mutex>
 
int main()
{
    std::mutex test;
    if (test.try_lock()==true)
        std::cout << "lock acquired" << std::endl;
    else
        std::cout << "lock not acquired" << std::endl;
    test.unlock();	//now unlock the mutex
    test.lock();	//to lock it again
    if (test.try_lock())  //true can be left out
        std::cout << "lock acquired" << std::endl;
    else
        std::cout << "lock not acquired" << std::endl;
    test.lock(); //and now the finale (a block)
}

Output:

lock acquired
lock not acquired
(program hangs)

[edit] See also

locks the mutex, blocks if the mutex is not available
(public member function) [edit]
unlocks the mutex
(public member function) [edit]