C++ named requirements: Lockable (since C++11)
From cppreference.net
C++
C++ named requirements
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Требования Lockable расширяют BasicLockable требования, включая попытки блокировки.
Содержание |
Требования
Чтобы тип
L
был
Lockable
, он должен удовлетворять указанному выше условию, а также следующему:
| Expression | Effects | Return value |
|---|---|---|
| m. try_lock ( ) | Пытается захватить блокировку для текущего агента выполнения (поток, процесс, задача) без блокировки. Если возникает исключение, блокировка не получена. | true если блокировка была получена, false в противном случае |
Примечания
Функция-член
try_lock
получает неразделяемую блокировку на
m
при успешном выполнении.
Стандартная библиотека
Следующие типы стандартной библиотеки удовлетворяют Lockable требованиям:
|
(C++11)
|
предоставляет базовое средство взаимного исключения
(class) |
|
(C++11)
|
предоставляет средство взаимного исключения, которое может быть рекурсивно заблокировано тем же потоком
(class) |
|
(C++11)
|
предоставляет средство взаимного исключения, которое может быть рекурсивно заблокировано
тем же потоком и реализует блокировку с таймаутом (class) |
|
(C++17)
|
предоставляет средство разделяемого взаимного исключения
(class) |
|
(C++14)
|
предоставляет средство разделяемого взаимного исключения и реализует блокировку с таймаутом
(class) |
|
(C++11)
|
предоставляет средство взаимного исключения, которое реализует блокировку с таймаутом
(class) |