forked from goodboy/tractor
Unlock pdb tty on all possible net faults
parent
79f0d6fda0
commit
61d2307e52
|
@ -253,7 +253,11 @@ async def _hijack_stdin_for_child(
|
||||||
# try:
|
# try:
|
||||||
# assert await stream.receive() == 'pdb_unlock'
|
# assert await stream.receive() == 'pdb_unlock'
|
||||||
|
|
||||||
except trio.BrokenResourceError:
|
except (
|
||||||
|
trio.BrokenResourceError,
|
||||||
|
trio.Cancelled, # by local cancellation
|
||||||
|
trio.ClosedResourceError, # by self._rx_chan
|
||||||
|
) as err:
|
||||||
# XXX: there may be a race with the portal teardown
|
# XXX: there may be a race with the portal teardown
|
||||||
# with the calling actor which we can safely ignore.
|
# with the calling actor which we can safely ignore.
|
||||||
# The alternative would be sending an ack message
|
# The alternative would be sending an ack message
|
||||||
|
@ -262,6 +266,9 @@ async def _hijack_stdin_for_child(
|
||||||
if lock and lock.locked():
|
if lock and lock.locked():
|
||||||
lock.release()
|
lock.release()
|
||||||
|
|
||||||
|
if isinstance(err, trio.Cancelled):
|
||||||
|
raise
|
||||||
|
|
||||||
log.debug(f"TTY lock released, remote task: {task_name}:{subactor_uid}")
|
log.debug(f"TTY lock released, remote task: {task_name}:{subactor_uid}")
|
||||||
|
|
||||||
return "pdb_unlock_complete"
|
return "pdb_unlock_complete"
|
||||||
|
|
Loading…
Reference in New Issue