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.