JOB_STACKFRAME_TMP_USER stackframes in context will look as follows:
job_RunState.l -> size in bytes of below stackframe JOB_STACKFRAME_NORMAL local_variable_N ... local_variable_1 job_RunState.v -> local_variable_0 compiledFunction for this frame. programCounter for this frame. size in bytes of above stackframe size in bytes of below stackframe JOB_STACKFRAME_TMP_USER previous actingUser value size in bytes of above stackframe
These stackframes are pushed to mark the scope of a handler being executed: We wish handlers to execute under the effective user who established them, to avoid odd problems, but wish the original user automatically restored upon exit.
The JOB_STACKFRAME_TMP_USER stackframe differs
from the JOB_STACKFRAME_USER stackframe primarily
in that it is pushed below rather than above the associated
JOB_STACKFRAME_USER stackframe, and consequently is
popped when encountered by the return
operator.
A full getStackframe[
USER frame result looks like:
:owner object :kind :tmp-user :actingUser object
Go to the first, previous, next, last section, table of contents.