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