Go to the first, previous, next, last section, table of contents.


JOB_STACKFRAME_PROTECT

JOB_STACKFRAME_PROTECT stackframes in context will look as follows:

  job_RunState.l   ->   size in bytes of below stackframe
                        JOB_STACKFRAME_PROTECT
                        pc to resume execution at (to run second clause)
                        size in bytes of above stackframe

                        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

These stackframes are pushed to mark subsequently executed code as being under the aegis of an after{ ... type statement, with some trailing }always_do{ ... } code that the system must execute come hell or high water.

A full getStackframe[ PROTECT frame result looks like:

:owner             object
:kind              :protect
:programCounter   fixnum


Go to the first, previous, next, last section, table of contents.