tractor/tractor
Tyler Goodlet 551816e80d Solve the root-cancels-child-in-tty-lock race
Finally this makes a cancelled root actor nursery not clobber child
tasks which request and lock the root's tty for the debugger repl.

Using an edge triggered event which is set after all fifo-lock-queued
tasks are complete, we can be sure that no lingering child tasks are
going to get interrupted during pdb use and tty lock acquisition.
Further, even if new tasks do queue up to get the lock, the root will
incrementally send cancel msgs to each sub-actor only once the tty is
not locked by a (set of) child request task(s). Add shielding around all
the critical sections where the child attempts to allocate the lock from
the root such that it won't be disrupted from cancel messages from the
root after the acquire lock transaction has started.
2021-07-31 12:46:40 -04:00
..
testing Drop trailing comma 2021-07-06 08:23:29 -04:00
__init__.py Expose streaming components at top level 2021-07-06 08:23:29 -04:00
_actor.py Mypy fixes 2021-07-08 12:48:34 -04:00
_child.py Docstring to the top\!, and redundant spaces goodbye\! 2020-07-29 15:39:38 -03:00
_debug.py Solve the root-cancels-child-in-tty-lock race 2021-07-31 12:46:40 -04:00
_discovery.py De-densify some code 2021-07-06 08:23:30 -04:00
_entry.py Support sync code breakpointing via built-in 2021-02-21 12:36:00 -05:00
_exceptions.py First try: pack cancelled tracebacks and ship to caller 2021-07-06 08:23:30 -04:00
_forkserver_override.py Ignore type checks on stdlib overrides 2021-02-21 14:08:23 -05:00
_ipc.py Change trace to transport level 2021-07-07 14:31:15 -04:00
_mp_fixup_main.py Fix more stdlib typing issues with latest mypy 2021-02-21 12:48:03 -05:00
_portal.py Mypy fixes 2021-07-08 12:48:34 -04:00
_root.py Use "pdb" level logging in debug mode 2021-07-08 13:02:33 -04:00
_spawn.py Fix hard kill in debug mode; only do it when debug lock is empty 2021-07-31 12:46:40 -04:00
_state.py Add a no runtime error 2021-04-28 12:23:08 -04:00
_streaming.py Mypy fixes 2021-07-08 12:48:34 -04:00
_trionics.py Solve the root-cancels-child-in-tty-lock race 2021-07-31 12:46:40 -04:00
log.py Define explicit adapter level methods for mypy 2021-07-08 12:51:35 -04:00
msg.py Adjustments for non-frozen context dataclass change 2021-07-06 08:23:29 -04:00