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


JOB_STACKFRAME_HANDLING

JOB_STACKFRAME_HANDLING stackframes in context will look as follows:

  job_RunState.l   ->   size in bytes of below stackframe
                        JOB_STACKFRAME_HANDLING
                        raw integer stack offset of HANDLERS frame
                        size in bytes of above stackframe

                        ...

                        size in bytes of below stackframe
                        JOB_STACKFRAME_HANDLERS
                        event0
                        function0
                        event1
                        function1
                        ...
                        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

While a handler is being invoked, CommonLisp specifies that all handlers in that set must be de-activated in order to prevent recursive errors and such. Muq implements this by pushing a HANDLING stackframe which points to the inactivated HANDLERS stackframe.

A full getStackframe[ HANDLING frame result looks like:

:owner             object
:kind              :handling
:stack-depth	   fixnum


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