FreeBSD Manual Pages
std::mutex::unlock(3) C++ Standard Libary std::mutex::unlock(3) NAME std::mutex::unlock - std::mutex::unlock Synopsis void unlock(); (since C++11) Unlocks the mutex. The mutex must be locked by the current thread of execution, other- wise, the behavior is undefined. This operation synchronizes-with (as defined in std::memory_order) any subsequent lock operation that obtains ownership of the same mutex. Parameters (none) Return value (none) Exceptions Throws nothing. Notes unlock() is usually not called directly: std::unique_lock and std::lock_guard are used to manage exclusive locking. Example This example shows how lock and unlock can be used to protect shared data. // Run this code #include <iostream> #include <chrono> #include <thread> #include <mutex> int g_num = 0; // protected by g_num_mutex std::mutex g_num_mutex; void slow_increment(int id) { for (int i = 0; i < 3; ++i) { g_num_mutex.lock(); int g_num_running = ++g_num; g_num_mutex.unlock(); std::cout << id << " => " << g_num_running << '\n'; std::this_thread::sleep_for(std::chrono::seconds(1)); } } int main() { std::thread t1(slow_increment, 0); std::thread t2(slow_increment, 1); t1.join(); t2.join(); } Possible output: 0 => 1 1 => 2 0 => 3 1 => 4 0 => 5 1 => 6 See also lock locks the mutex, blocks if the mutex is not available (public member function) try_lock tries to lock the mutex, returns if the mutex is not avail- able (public member function) http://cppreference.com 2022.07.31 std::mutex::unlock(3)
NAME | Synopsis | Parameters | Return value | Exceptions | Notes | Example | Possible output: | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::mutex::unlock&sektion=3&manpath=FreeBSD+Ports+15.0>
