Именованные требования C++: Lockable (начиная с C++11)
Требования Lockable расширяют требования BasicLockable, добавляя попытку блокировки.
Требования
Чтобы тип L удовлетворял требованиям Lockable, он должен соответствовать указанному выше условию, а также следующему:
| Выражение | Действия | Возвращаемое значение |
|---|---|---|
m.try_lock() | Пытается захватить блокировку для текущего агента выполнения (потока, процесса, задачи) без блокировки. Если выбрасывается исключение, блокировка не захватывается. |
true, если блокировка была захвачена, иначе false |
Примечания
Функции-члены try_lock при успешном выполнении получают неисключительную блокировку m.
Стандартная библиотека
Следующие типы стандартной библиотеки удовлетворяют требованиям Lockable:
|
(C++11) | предоставляет базовые средства взаимного исключения (класс) |
|
(C++11) | предоставляет средства взаимного исключения, которые один и тот же поток может блокировать рекурсивно (класс) |
|
(C++11) | предоставляет средства взаимного исключения, которые один и тот же поток может блокировать рекурсивно и реализует блокировку с ограничением по времени (класс) |
|
(C++17) | предоставляет средства совместного взаимного исключения (класс) |
|
(C++14) | предоставляет средства совместного взаимного исключения и реализует блокировку с ограничением по времени (класс) |
|
(C++11) | предоставляет средства взаимного исключения с блокировкой, ограниченной по времени (класс) |
См. также
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/named_req/Lockable