Spec-Zone.ru › C++

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API