std::counting_semaphore<LeastMaxValue>::try_acquire_for
template< class Rep, class Period > bool try_acquire_for( const std::chrono::duration<Rep, Period>& rel_time ); | (начиная с C++20) |
Пытается атомарно уменьшить внутренний счётчик на 1, если он больше 0; в противном случае блокируется, пока он не станет больше 0 и внутренний счётчик нельзя будет успешно уменьшить, либо пока не истечёт интервал времени rel_time.
Предварительные условия
(нет)
Параметры
| rel_time | - | минимальное время, которое функция должна ждать до завершения без успеха |
Возвращаемое значение
true, если внутренний счётчик был уменьшен, иначе false.
Исключения
Может выбросить std::system_error или исключение, связанное с тайм-аутом.
Примечания
На практике функция может завершиться без успеха позднее, чем через rel_time.
См. также
| увеличивает внутренний счётчик и разблокирует потоки, ожидающие получения ресурса (открытая функция-член) |
|
| уменьшает внутренний счётчик или блокируется до тех пор, пока это не станет возможным (открытая функция-член) |
|
| пытается уменьшить внутренний счётчик без блокировки (открытая функция-член) |
|
| пытается уменьшить внутренний счётчик, блокируясь до определённого момента времени (открытая функция-член) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/thread/counting_semaphore/try_acquire_for