Use "sclang"-style syntax in `to_asyncio` task logging
Just like we've started doing throughout the rest of the actor runtime for reporting (and where "sclang" = "structured conc (s)lang", our little supervision-focused operations syntax i've been playing with in log msg content). Further tweaks: - report the `trio_done_fute` alongside the `main_outcome` value. - add a todo list for supporting `greenback` for pause points.multihost_exs
parent
8363317e11
commit
f7469442e3
|
@ -276,7 +276,10 @@ def _run_asyncio_task(
|
|||
chan._aio_task: asyncio.Task = task
|
||||
|
||||
# XXX TODO XXX get this actually workin.. XD
|
||||
# maybe setup `greenback` for `asyncio`-side task REPLing
|
||||
# -[ ] we need logic to setup `greenback` for `asyncio`-side task
|
||||
# REPLing.. which should normally be nearly the same as for
|
||||
# `trio`?
|
||||
# -[ ] add to a new `.devx._greenback.maybe_init_for_asyncio()`?
|
||||
if (
|
||||
debug_mode()
|
||||
and
|
||||
|
@ -305,15 +308,22 @@ def _run_asyncio_task(
|
|||
|
||||
msg: str = (
|
||||
'Infected `asyncio` task {etype_str}\n'
|
||||
f'|_{task}\n'
|
||||
)
|
||||
if isinstance(terr, CancelledError):
|
||||
msg += (
|
||||
f'c)>\n'
|
||||
f' |_{task}\n'
|
||||
)
|
||||
log.cancel(
|
||||
msg.format(etype_str='cancelled')
|
||||
)
|
||||
else:
|
||||
msg += (
|
||||
f'x)>\n'
|
||||
f' |_{task}\n'
|
||||
)
|
||||
log.exception(
|
||||
msg.format(etype_str='cancelled')
|
||||
msg.format(etype_str='errored')
|
||||
)
|
||||
|
||||
assert type(terr) is type(aio_err), (
|
||||
|
@ -619,9 +629,10 @@ def run_as_asyncio_guest(
|
|||
# )
|
||||
|
||||
def trio_done_callback(main_outcome):
|
||||
log.info(
|
||||
f'trio_main finished with\n'
|
||||
f'|_{main_outcome!r}'
|
||||
log.runtime(
|
||||
f'`trio` guest-run finishing with outcome\n'
|
||||
f'>) {main_outcome}\n'
|
||||
f'|_{trio_done_fute}\n'
|
||||
)
|
||||
|
||||
if isinstance(main_outcome, Error):
|
||||
|
@ -643,6 +654,12 @@ def run_as_asyncio_guest(
|
|||
else:
|
||||
trio_done_fute.set_result(main_outcome)
|
||||
|
||||
log.info(
|
||||
f'`trio` guest-run finished with outcome\n'
|
||||
f')>\n'
|
||||
f'|_{trio_done_fute}\n'
|
||||
)
|
||||
|
||||
startup_msg += (
|
||||
f'-> created {trio_done_callback!r}\n'
|
||||
f'-> scheduling `trio_main`: {trio_main!r}\n'
|
||||
|
@ -681,7 +698,8 @@ def run_as_asyncio_guest(
|
|||
# error path in `asyncio`'s runtime..?
|
||||
asyncio.CancelledError,
|
||||
|
||||
) as fute_err:
|
||||
) as _fute_err:
|
||||
fute_err = _fute_err
|
||||
err_message: str = (
|
||||
'main `asyncio` task '
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue