forked from goodboy/tractor
682 B
682 B
Repair inter-actor stream closure semantics to work correctly with tractor.trionics.BroadcastReceiver
task fan out usage.
A set of previously unknown bugs discovered in 257 let graceful stream closure result in hanging consumer tasks that use the broadcast APIs. This adds better internal closure state tracking to the broadcast receiver and message stream APIs and in particular ensures that when an underlying stream/receive-channel (a broadcast receiver is receiving from) is closed, all consumer tasks waiting on that underlying channel are woken so they can receive the trio.EndOfChannel
signal and promptly terminate.