Compare commits

..

No commits in common. "d2ad58d5d6c16772ad8b33770fb46968d9359b68" and "5fc64107e566a5b59097cb1e9a6b3171f2125106" have entirely different histories.

3 changed files with 11 additions and 51 deletions

View File

@ -478,10 +478,7 @@ async def open_root_actor(
# start runtime in a bg sub-task, yield to caller. # start runtime in a bg sub-task, yield to caller.
async with ( async with (
collapse_eg( collapse_eg(),
bp=True,
hide_tb=False,
),
trio.open_nursery() as root_tn, trio.open_nursery() as root_tn,
# XXX, finally-footgun below? # XXX, finally-footgun below?
@ -526,12 +523,6 @@ async def open_root_actor(
err, err,
api_frame=inspect.currentframe(), api_frame=inspect.currentframe(),
debug_filter=debug_filter, debug_filter=debug_filter,
# XXX NOTE, required to debug root-actor
# crashes under cancellation conditions; so
# most of them!
shield=root_tn.cancel_scope.cancel_called,
# ^TODO? write a (debugger) test for this ya?
) )
if ( if (

View File

@ -468,11 +468,7 @@ async def _open_and_supervise_one_cancels_all_nursery(
# errors from this daemon actor nursery bubble up to caller # errors from this daemon actor nursery bubble up to caller
async with ( async with (
# collapse_eg(), collapse_eg(),
collapse_eg(
bp=True,
hide_tb=False,
),
trio.open_nursery() as da_nursery, trio.open_nursery() as da_nursery,
): ):
try: try:
@ -485,11 +481,7 @@ async def _open_and_supervise_one_cancels_all_nursery(
# As such if the strategy propagates any error(s) upwards # As such if the strategy propagates any error(s) upwards
# the above "daemon actor" nursery will be notified. # the above "daemon actor" nursery will be notified.
async with ( async with (
# collapse_eg(), collapse_eg(),
collapse_eg(
bp=True,
hide_tb=False,
),
trio.open_nursery() as ria_nursery, trio.open_nursery() as ria_nursery,
): ):
an = ActorNursery( an = ActorNursery(
@ -629,17 +621,11 @@ async def _open_and_supervise_one_cancels_all_nursery(
# use `BaseExceptionGroup` as needed # use `BaseExceptionGroup` as needed
if len(errors) > 1: if len(errors) > 1:
beg = BaseExceptionGroup( raise BaseExceptionGroup(
'tractor.ActorNursery errored with', 'tractor.ActorNursery errored with',
tuple(errors.values()), tuple(errors.values()),
) )
beg.add_note(
'This beg was created from an actor-nursery!\n'
)
await debug.pause(shield=True)
raise beg
else: else:
# await debug.pause(shield=True)
raise list(errors.values())[0] raise list(errors.values())[0]
# show frame on any (likely) internal error # show frame on any (likely) internal error
@ -697,30 +683,16 @@ async def open_nursery(
# mark us for teardown on exit # mark us for teardown on exit
implicit_runtime: bool = True implicit_runtime: bool = True
async with ( async with open_root_actor(
# collapse_eg(),
collapse_eg(
bp=True,
hide_tb=False,
),
open_root_actor(
hide_tb=hide_tb, hide_tb=hide_tb,
**kwargs, **kwargs,
) as actor ) as actor:
):
assert actor is current_actor() assert actor is current_actor()
try: try:
async with ( async with _open_and_supervise_one_cancels_all_nursery(
# collapse_eg(),
collapse_eg(
bp=True,
hide_tb=False,
),
_open_and_supervise_one_cancels_all_nursery(
actor actor
) as an, ) as an:
):
# NOTE: mark this nursery as having # NOTE: mark this nursery as having
# implicitly started the root actor so # implicitly started the root actor so

View File

@ -561,9 +561,6 @@ async def _pause(
return return
elif isinstance(pause_err, trio.Cancelled): elif isinstance(pause_err, trio.Cancelled):
__tracebackhide__: bool = False
# XXX, unmask to REPL it.
# mk_pdb().set_trace(frame=inspect.currentframe())
_repl_fail_report += ( _repl_fail_report += (
'You called `tractor.pause()` from an already cancelled scope!\n\n' 'You called `tractor.pause()` from an already cancelled scope!\n\n'
'Consider `await tractor.pause(shield=True)` to make it work B)\n' 'Consider `await tractor.pause(shield=True)` to make it work B)\n'