C++ требования к именованным типам: BasicLockable (с C++11)
Требования к типу BasicLockable описывают минимальные характеристики типов, предоставляющих эксклюзивные блокирующие семантики для агентов выполнения (т.е. потоков).
Требования
Для типа L быть BasicLockable, следующие условия должны выполняться для объекта m типа L:
| Выражение | Предпосылки | Эффекты |
|---|---|---|
m.lock() | Блокирует, пока не будет получен блокировка для текущего агента выполнения (потока, процесса, задачи). Если произойдет исключение, блокировка не приобретается. | |
m.unlock() | Текущий агент выполнения удерживает неразделяемую блокировку на m. | Освобождает неразделяемую блокировку, удерживаемую агентом выполнения. Не бросает исключений. |
Неразделяемые блокировки
Блокировка на объекте называется неразделяемой блокировкой, если она приобретается вызовом функции lock, try_lock, try_lock_for, или try_lock_until.
См. также
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/named_req/BasicLockable