tractor/tractor
Tyler Goodlet 8eb9a742dd Add multi-process debugging support using `pdbpp`
This is the first step in addressing #113 and the initial support
of #130. Basically this allows (sub)processes to engage the `pdbpp`
debug machinery which read/writes the root actor's tty but only in
a FIFO semaphored way such that no two processes are using it
simultaneously. That means you can have multiple actors enter a trace or
crash and run the debugger in a sensible way without clobbering each
other's access to stdio. It required adding some "tear down hooks" to
a custom `pdbpp.Pdb` type such that we release a child's lock on the
parent on debugger exit (in this case when either of the "continue" or
"quit" commands are issued to the debugger console).

There's some code left commented in anticipation of full support for
issue #130 where we're need to actually capture and feed stdin to the
target (remote) actor which won't necessarily being running on the same
host.
2020-09-24 10:12:10 -04:00
..
testing Make rpc_module_paths a list 2020-08-13 11:53:45 -04:00
__init__.py Add support for "debug mode" 2020-09-24 10:12:10 -04:00
_actor.py Add multi-process debugging support using `pdbpp` 2020-09-24 10:12:10 -04:00
_child.py Docstring to the top\!, and redundant spaces goodbye\! 2020-07-29 15:39:38 -03:00
_debug.py Add multi-process debugging support using `pdbpp` 2020-09-24 10:12:10 -04:00
_discovery.py Log on KBI cancelled termination 2020-08-03 18:46:18 -04:00
_entry.py Initial attempt at multi-actor debugging 2020-09-24 10:12:10 -04:00
_exceptions.py Expose trio exceptions to `RemoteActorError` 2019-10-30 00:32:10 -04:00
_forkserver_override.py Continue hacking the forkserver in Python 3.8 2019-10-15 22:37:47 -04:00
_ipc.py Allow for tuple keys with std `msgpack` 2020-08-03 18:41:21 -04:00
_mp_fixup_main.py Do __main__ fixups like ``mulitprocessing does`` 2020-01-29 21:14:48 -05:00
_portal.py Appease the great mypy 2020-08-08 20:57:43 -04:00
_spawn.py Initial attempt at multi-actor debugging 2020-09-24 10:12:10 -04:00
_state.py Create runtime variables 2020-09-24 10:12:10 -04:00
_streaming.py Validate stream functions at decorate time 2019-03-29 19:10:32 -04:00
_trionics.py Initial attempt at multi-actor debugging 2020-09-24 10:12:10 -04:00
log.py Allow overriding the root logger name 2019-12-20 16:37:17 -05:00
msg.py Docs fixes 2020-08-08 22:29:57 -04:00