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.

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

#include <iostream>
#include <mutex>
 
int main()
{
    std::mutex test;
    if (test.try_lock()==true) {
        std::cout << "lock acquired" << std::endl;
        test.unlock();	//now unlock the mutex    
    } else {
        std::cout << "lock not acquired" << std::endl;
    }
 
    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.unlock(); 
}

Output:

lock acquired
lock not acquired

[edit] See also

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