If a developer accidently awaits a future of a different context, the result is termination currently. If a corotuine is resumed and the awaitable for the future has its await_resume() call made and its still in the handle state, the only viable option is to terminate. The symmetric transfer will work the first time, but resuming that context again will terminate. So a new mechanism is needed to allow cross context awaiting. This is an anti-pattern but one that is worth supporting to reduce the surface area of errors.
If a developer accidently awaits a future of a different context, the result is termination currently. If a corotuine is resumed and the awaitable for the future has its await_resume() call made and its still in the handle state, the only viable option is to terminate. The symmetric transfer will work the first time, but resuming that context again will terminate. So a new mechanism is needed to allow cross context awaiting. This is an anti-pattern but one that is worth supporting to reduce the surface area of errors.