std::recursive_timed_mutex::unlock
void unlock(); | (с C++11) |
Разблокирует мьютекс, если его уровень владения 1 (было ровно на один вызов больше lock() чем вызовов unlock() в этом потоке), в противном случае уменьшает уровень владения на 1.
Мьютекс должен быть заблокирован текущим потоком выполнения, в противном случае поведение не определено.
Эта операция синхронизирована (как определено в std::memory_order) с любой последующей операцией блокировки, которая получает владение тем же мьютексом.
Параметры
(нет)
Возвращаемое значение
(нет)
Исключение
Не выбрасывает ничего.
Примечания
unlock() обычно не вызывается напрямую: std::unique_lock и std::lock_guard используются для управления взаимной блокировкой.
Пример
См. также
| блокирует мьютекс, блокируется, если мьютекс недоступен (общедоступный член-функция) |
|
| пытается заблокировать мьютекс, возвращается, если мьютекс недоступен (общедоступный член-функция) |
|
| пытается заблокировать мьютекс, возвращается, если мьютекс был недоступен в течение заданного времени ожидания (общедоступный член-функция) |
|
| пытается заблокировать мьютекс, возвращается, если мьютекс был недоступен до тех пор, пока не будет достигнута указанная точка во времени (общедоступный член-функция) |
|
Документация на C для mtx_unlock |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/thread/recursive_timed_mutex/unlock