std::execution::run_loop::finish
void finish() noexcept; | (начиная с C++26) |
Запрашивает завершение run_loop.
Предварительные условия
Состояние экземпляра run_loop — либо starting, либо running.
Эффекты
Изменяет состояние экземпляра run_loop на finishing.
Если поток заблокирован в run в ожидании работы, finish позволяет этому вызову вернуться, когда очередь опустеет.
Синхронизация
finish синхронизируется с внутренней операцией pop-front, которая возвращает nullptr в run.
Примечания
Вызов finish не отбрасывает уже поставленную в очередь работу. Вызов run продолжает выполнять состояния поставленных в очередь операций, пока очередь не опустеет, а затем возвращается.
Допустимо вызвать finish до run. В этом случае последующий вызов run обнаруживает состояние finishing и возвращается, как только обнаруживает пустую очередь.
Пример
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/execution/run_loop/finish