coroutine cancellation is cooperative - they need ...
# coroutines
a
coroutine cancellation is cooperative - they need to check the isRunning property of the coroutine scope, unless they're calling one of the library coroutine methods that automatically do that and throw a CancellationException