Можно ли создать тип задачи/обещания сопрограммы 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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