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/cpp/thread/recursive_timed_mutex/unlock