std::recursive_mutex::try_lock
From cppreference.com
< cpp | thread | recursive mutex
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) |