Можно ли создать тип задачи/обещания сопрограммы C++, который позволяет получить get_running_coroutine()?C++

Программы на C++. Форум разработчиков
Anonymous
Можно ли создать тип задачи/обещания сопрограммы C++, который позволяет получить get_running_coroutine()?

Сообщение Anonymous »

AFAICT в C++20 или C++23 нет встроенного способа для глобального запроса обещания или дескриптора сопрограммы, выполняющейся в текущем потоке. Однако любая из функций, которые позволяют вам вернуть сопрограмму для ее запуска, например. Initial_suspend, Final_suspend, await_suspend и т. д. будут знать, какая сопрограмма собирается запуститься, и могут установить thread_local для coroutine_handle, который они возвращают, перед возвратом. Этого достаточно или есть еще случаи, о которых стоит беспокоиться? Это предполагает, что при типичном использовании люди выполняют co_await для своих типов задач, а не запускают вручную собственный цикл, вызывая handle.resume() снова и снова (и если бы существовал исполнитель/агент выполнения переключение между сохраненными сопрограммами верхнего уровня, чтобы они могли взаимодействовать со схемой).

Подробнее здесь: https://stackoverflow.com/questions/793 ... it-possibl

Вернуться в «C++»