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.

The behavior is undefined if the mutex is not unlocked before being destroyed, i.e. some thread still owns it.

Contents

[edit] Parameters

(none)

[edit] Return value

true if the lock was acquired successfully, otherwise false.

[edit] Exceptions

(none)

[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)
unlocks the mutex
(public member function)