Regarding coroutine cancellation, apparently 1) If...
# coroutines
f
Regarding coroutine cancellation, apparently 1) If a coroutine is cancelled after termination, then a posterior
join
or
await
will succeed without throwing. 2) If a coroutine is cancelled before termination but ignores the cancellation (i.e. the coroutine ends without exception), a posterior
join
or
await
will throw. Is this behaviour documented? Is there a strong rationale for it? Since cancellation needs to be cooperative, I was expecting an ignored
cancel
to produce no effects. Namely a posterior
join
or
await
would return the result and not throw. I may however be biased on how cancellation works on .NET. Thanks.