forked from goodboy/tractor
Add back broken send chan ignore block
parent
efba5229fc
commit
4856285dee
|
@ -663,6 +663,18 @@ class Actor:
|
||||||
# consumer task
|
# consumer task
|
||||||
await ctx._maybe_raise_from_remote_msg(msg)
|
await ctx._maybe_raise_from_remote_msg(msg)
|
||||||
|
|
||||||
|
except trio.BrokenResourceError:
|
||||||
|
# TODO: what is the right way to handle the case where the
|
||||||
|
# local task has already sent a 'stop' / StopAsyncInteration
|
||||||
|
# to the other side but and possibly has closed the local
|
||||||
|
# feeder mem chan? Do we wait for some kind of ack or just
|
||||||
|
# let this fail silently and bubble up (currently)?
|
||||||
|
|
||||||
|
# XXX: local consumer has closed their side
|
||||||
|
# so cancel the far end streaming task
|
||||||
|
log.warning(f"{send_chan} consumer is already closed")
|
||||||
|
return
|
||||||
|
|
||||||
except trio.WouldBlock:
|
except trio.WouldBlock:
|
||||||
# XXX: always push an error even if the local
|
# XXX: always push an error even if the local
|
||||||
# receiver is in overrun state.
|
# receiver is in overrun state.
|
||||||
|
@ -691,16 +703,11 @@ class Actor:
|
||||||
err_msg = pack_error(err)
|
err_msg = pack_error(err)
|
||||||
err_msg['cid'] = cid
|
err_msg['cid'] = cid
|
||||||
try:
|
try:
|
||||||
# TODO: what is the right way to handle the case where the
|
|
||||||
# local task has already sent a 'stop' / StopAsyncInteration
|
|
||||||
# to the other side but and possibly has closed the local
|
|
||||||
# feeder mem chan? Do we wait for some kind of ack or just
|
|
||||||
# let this fail silently and bubble up (currently)?
|
|
||||||
await chan.send(err_msg)
|
await chan.send(err_msg)
|
||||||
except trio.BrokenResourceError:
|
except trio.BrokenResourceError:
|
||||||
# XXX: local consumer has closed their side
|
# XXX: local consumer has closed their side
|
||||||
# so cancel the far end streaming task
|
# so cancel the far end streaming task
|
||||||
log.warning(f"{send_chan} consumer is already closed")
|
log.warning(f"{chan} is already closed")
|
||||||
|
|
||||||
def get_context(
|
def get_context(
|
||||||
self,
|
self,
|
||||||
|
|
Loading…
Reference in New Issue