We have a few unbuffered channels that in normal operation we expect to cycle rather quickly. However, since they can block indefinitely (unlikely, but possible) we should allow for cancellation to occur.
Most of the complications for cancel come from leaving ourselves in an inconsistent state but the spots I've added cancellation shouldn't be problematic, as they're all before network IO has occurred.
We have a few unbuffered channels that in normal operation we expect to cycle rather quickly. However, since they can block indefinitely (unlikely, but possible) we should allow for cancellation to occur.
Most of the complications for cancel come from leaving ourselves in an inconsistent state but the spots I've added cancellation shouldn't be problematic, as they're all before network IO has occurred.