template <class L1, class L2, class... L3> int try_lock(L1&, L2&, L3&...);
Requires: Каждый тип параметра шаблона должен соответствовать Lockable требованиям. [ Шаблон класса отвечает этим требованиям при соответствующем инстанцирован. ] Note: unique_lock — end note
Effects: Вызывает try_lock() каждый аргумент по порядку, начиная с первого, до тех пор, пока все аргументы не будут обработаны или вызов try_lock() не завершится ошибкой, либо путем возврата, false либо путем выброса исключения. Если вызов для try_lock() завершается неудачно, unlock() должны вызываться все предыдущие аргументы, и не должно быть никаких дальнейших вызовов try_lock().
Returns: -1 если все вызовы try_lock() возвращены true, в противном случае отсчитываемое от нуля значение индекса, указывающее аргумент, для которого был try_lock() возвращен false.
template <class L1, class L2, class... L3> void lock(L1&, L2&, L3&...);
Requires: Каждый тип параметра шаблона должен отвечать Lockable требованиям, [ шаблонный класс отвечает этим требованиям при соответствующем инстанцирован. ] Note: unique_lock — end note
Effects: Все аргументы заблокированы через последовательность звонков lock(), try_lock()или unlock() по каждому аргументу. Последовательность вызовов не должна приводить к тупиковой ситуации, но иначе не определена. [ Note: Должен использоваться алгоритм предотвращения взаимоблокировок, такой как попытка и откат, но конкретный алгоритм не указан, чтобы избежать чрезмерных ограничений реализаций. ] Если вызов или вызывает исключение, должен вызываться для любого аргумента, который был заблокирован вызовом или . — end note lock() try_lock() unlock() lock() try_lock()