I also want to note another possible case: “cancellation after cancellation,” which is not yet implemented.
The Scheduler API forbids canceling a coroutine twice. However, the Scheduler itself has the right to do so and may use it in a critical situation when it must urgently cancel all coroutines, even those that were already canceled. This is a rough approach, so the cancellation code might expect certain conditions, but it is highly likely to be used in situations such as DeadLock or similar cases. --- Best Regards, Ed
