From 2ed811fa0d4715a1fe73e00635c297921fa57121 Mon Sep 17 00:00:00 2001 From: Tyler Goodlet Date: Wed, 11 Jun 2025 19:50:29 -0400 Subject: [PATCH] Disable `greenback` sync fn breakpointing by def Opting for performance over broad multi-actor "debug-ability" from sync-function-contexts when `debug_mode=True` is set; IOW prefer no behind-the-scenes `greenlet` perf impact over being able to use an actor-safe `breakpoint()` wherever as per, https://greenback.readthedocs.io/en/latest/principle.html#performance Adjust the breakpoint restore ex script to match. --- examples/debugging/restore_builtin_breakpoint.py | 7 +++++-- tractor/_root.py | 4 +++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/examples/debugging/restore_builtin_breakpoint.py b/examples/debugging/restore_builtin_breakpoint.py index 7477220a..06c3bbc4 100644 --- a/examples/debugging/restore_builtin_breakpoint.py +++ b/examples/debugging/restore_builtin_breakpoint.py @@ -19,8 +19,11 @@ async def main() -> None: async with tractor.open_nursery( debug_mode=True, loglevel='devx', - ) as an: - assert an + maybe_enable_greenback=True, + # ^XXX REQUIRED to enable `breakpoint()` support (from sync + # fns) and thus required here to avoid an assertion err + # on the next line + ): assert ( (pybp_var := os.environ['PYTHONBREAKPOINT']) == diff --git a/tractor/_root.py b/tractor/_root.py index 807fe762..14903a66 100644 --- a/tractor/_root.py +++ b/tractor/_root.py @@ -166,7 +166,9 @@ async def open_root_actor( # enables the multi-process debugger support debug_mode: bool = False, - maybe_enable_greenback: bool = True, # `.pause_from_sync()/breakpoint()` support + maybe_enable_greenback: bool = False, # `.pause_from_sync()/breakpoint()` support + # ^XXX NOTE^ the perf implications of use, + # https://greenback.readthedocs.io/en/latest/principle.html#performance enable_stack_on_sig: bool = False, # internal logging