tractor/nooz/333.feature.rst

1.2 KiB

Add support for trio >= 0.22 and support for the new Python 3.11 [Base]ExceptionGroup from pep 654 via the backported exceptiongroup package and some final fixes to the debug mode subsystem.

This port ended up driving some (hopefully) final fixes to our debugger subsystem including the solution to all lingering stdstreams locking race-conditions and deadlock scenarios. This includes extending the debugger tests suite as well as cancellation and asyncio mode cases. Some of the notable details:

  • always reverting to the trio SIGINT handler when leaving debug mode.
  • bypassing child attempts to acquire the debug lock when detected to be amdist actor-runtime-cancellation.
  • allowing the root actor to cancel local but IPC-stale subactor requests-tasks for the debug lock when in a "no IPC peers" state.

Further we refined our ActorNursery semantics to be more similar to trio in the sense that parent task errors are always packed into the actor-nursery emitted exception group and adjusted all tests and examples accordingly.