Wake up consumers on end of channel as well
parent
cfdc95fe7f
commit
61e134dc5d
|
@ -222,7 +222,10 @@ class BroadcastReceiver(ReceiveChannel):
|
|||
event.set()
|
||||
return value
|
||||
|
||||
except trio.Cancelled:
|
||||
except (
|
||||
trio.Cancelled,
|
||||
trio.EndOfChannel,
|
||||
):
|
||||
# handle cancelled specially otherwise sibling
|
||||
# consumers will be awoken with a sequence of -1
|
||||
# state.recv_ready = trio.Cancelled
|
||||
|
@ -274,11 +277,12 @@ class BroadcastReceiver(ReceiveChannel):
|
|||
async def subscribe(
|
||||
self,
|
||||
) -> AsyncIterator[BroadcastReceiver]:
|
||||
'''Subscribe for values from this broadcast receiver.
|
||||
'''
|
||||
Subscribe for values from this broadcast receiver.
|
||||
|
||||
Returns a new ``BroadCastReceiver`` which is registered for and
|
||||
pulls data from a clone of the original ``trio.abc.ReceiveChannel``
|
||||
provided at creation.
|
||||
pulls data from a clone of the original
|
||||
``trio.abc.ReceiveChannel`` provided at creation.
|
||||
|
||||
'''
|
||||
if self._closed:
|
||||
|
|
Loading…
Reference in New Issue