C++ наимённые требования: SharedLockable (с C++14)
Требования SharedLockable описывают минимальные характеристики типов, которые обеспечивают совместные блокирующие семантики для агентов выполнения (т.е. потоков).
Требования
Для типа L быть SharedLockable, следующие условия должны быть выполнены для объекта m типа L;
| Выражение | Предпосылки | Эффекты | Возвращаемое значение |
|---|---|---|---|
m.lock_shared() | Блокирует, пока не будет получен блокировка для текущего агента выполнения (поток, процесс, задача). Если возникает исключение, блокировка не получается. | ||
m.try_lock_shared() | Попытка получить блокировку для текущего агента выполнения (поток, процесс, задача) без блокировки. Если возникает исключение, блокировка не получается. |
true если блокировка была получена, false в противном случае |
|
m.unlock_shared() | Текущий агент выполнения удерживает общую блокировку на m. | Освобождает общую блокировку, удерживаемую агентом выполнения. Не выбрасывает исключений. |
Общие блокировки
Блокировка объекта называется общей блокировкой, если она приобретена вызовом функции-члена lock_shared, try_lock_shared, try_lock_shared_for, или try_lock_shared_until.
См. также
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/named_req/SharedLockable