Raise RTE from `limit_plds()` on no `curr_ctx`
Since it should only be used from within a `Portal.open_context()` scope, make sure the caller knows that! Also don't hide the frame in tb if the immediate function errors..ext_type_plds
parent
9ec63f8187
commit
8fa23fcccd
|
@ -461,11 +461,16 @@ def limit_plds(
|
||||||
|
|
||||||
'''
|
'''
|
||||||
__tracebackhide__: bool = True
|
__tracebackhide__: bool = True
|
||||||
|
curr_ctx: Context|None = current_ipc_ctx()
|
||||||
|
if curr_ctx is None:
|
||||||
|
raise RuntimeError(
|
||||||
|
'No IPC `Context` is active !?\n'
|
||||||
|
'Did you open `limit_plds()` from outside '
|
||||||
|
'a `Portal.open_context()` scope-block?'
|
||||||
|
)
|
||||||
try:
|
try:
|
||||||
curr_ctx: Context = current_ipc_ctx()
|
|
||||||
rx: PldRx = curr_ctx._pld_rx
|
rx: PldRx = curr_ctx._pld_rx
|
||||||
orig_pldec: MsgDec = rx.pld_dec
|
orig_pldec: MsgDec = rx.pld_dec
|
||||||
|
|
||||||
with rx.limit_plds(
|
with rx.limit_plds(
|
||||||
spec=spec,
|
spec=spec,
|
||||||
**dec_kwargs,
|
**dec_kwargs,
|
||||||
|
@ -475,6 +480,11 @@ def limit_plds(
|
||||||
f'{pldec}\n'
|
f'{pldec}\n'
|
||||||
)
|
)
|
||||||
yield pldec
|
yield pldec
|
||||||
|
|
||||||
|
except BaseException:
|
||||||
|
__tracebackhide__: bool = False
|
||||||
|
raise
|
||||||
|
|
||||||
finally:
|
finally:
|
||||||
log.runtime(
|
log.runtime(
|
||||||
'Reverted to previous payload-decoder\n\n'
|
'Reverted to previous payload-decoder\n\n'
|
||||||
|
|
Loading…
Reference in New Issue