forked from goodboy/tractor
13 lines
737 B
ReStructuredText
13 lines
737 B
ReStructuredText
Fix graceful cancellation of daemon actors
|
|
|
|
Previously, his was a bug where if the soft wait on a sub-process (the
|
|
``await .proc.wait()``) in the reaper task teardown was cancelled we
|
|
would fail over to the hard reaping sequence (meant for culling off any
|
|
potential zombies via system kill signals). The hard reap has a timeout
|
|
of 3s (currently though in theory we could make it shorter?) before
|
|
system signalling kicks in. This means that any daemon actor still
|
|
running during nursery exit would get hard reaped (3s later) instead of
|
|
cancelled via IPC message. Now we catch the ``trio.Cancelled``, call
|
|
``Portal.cancel_actor()`` on the daemon and expect the child to
|
|
self-terminate after the runtime cancels and shuts down the process.
|