Resuming a coroutine via
resume,
operator(), or
destroy
on an execution agent other than the one on which it was suspended
has
implementation-defined behavior
unless
each execution agent either is
an instance of
std::thread or
std::jthread,
or is the thread that executes
main.