std::unique_lock<Mutex>::try_lock_until
template< class Clock, class Duration > bool try_lock_until( const std::chrono::time_point<Clock, Duration>& timeout_time ); | (с C++11) |
Попытка заблокировать (т.е., получить владение) связанным мьютексом. Ожидает, пока не будет достигнута указанная timeout_time, или до получения блокировки, что произойдёт раньше. При успешном получении блокировки возвращает true, в противном случае возвращает false. Может блокироваться дольше, чем timeout_time, пока не будет достигнуто указанное время.
Эффективно вызывает mutex()->try_lock_until(timeout_time).
std::system_error будет выброшено, если нет связанного мьютекса или если мьютекс уже заблокирован той же нитью.
Clock должно соответствовать требованиям Clock. Программа некорректна, если std::chrono::is_clock_v<Clock> является false. (с C++20)
Параметры
| timeout_time | - | максимальная временная точка ожидания |
Значение возврата
true , если владение мьютексом было успешно получено, false в противном случае.
Исключение
- Любые исключения, выброшенные
mutex()->try_lock_until(timeout_time). - Если нет связанного мьютекса,
std::system_errorс кодом ошибкиstd::errc::operation_not_permitted. - Если мьютекс уже заблокирован,
std::system_errorс кодом ошибкиstd::errc::resource_deadlock_would_occur.
Пример
См. также
| блокирует (т.е., получает владение) связанным мьютексом (публичный член-функция) |
|
| пытается заблокировать (т.е., получить владение) связанный мьютекс без ожидания (публичный член-функция) |
|
| пытается заблокировать (т.е., получить владение) связанным TimedLockable мьютексом, возвращает, если мьютекс был недоступен в течение указанного времени (публичный член-функция) |
|
| разблокирует (т.е., освобождает владение) связанный мьютекс (публичный член-функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/thread/unique_lock/try_lock_until