pike.git / multi-cpu.txt

version» Context lines:

pike.git/multi-cpu.txt:702:   in the ZCT for current topmost frame.      That way, the micro-gc can scan the topmost parts of the stacks (above   the last pike stack frame) for references to things in the topmost   ZCT, and when a pike stack frame is popped then the things in its ZCT   can be freed without scanning at all. This is enough to timely   destruct and free the things put on the pike stack.      Furthermore, since the old immediate-destruct semantics only requires   destructing before and after every pike level function call, it won't - be necessary for the micro-gc to scan the C stack at all (there's - never any part of it above the current frame, i.e. above the innermost - mega_apply, to scan). + be necessary for the micro-gc to scan the C stack at all. That since + there never is any part of it above the current frame, i.e. above the + innermost mega_apply, to scan.      Note that the above works under the assumption that new things are   only referenced from the stacks in or below the current frame. That's   not always true - code might change the stack further back to   reference new things, e.g. if a function allocates some temporary   struct on the stack and then pass the pointer to it to subroutines   that change it.      Such code on the C level is very unlikely, since it would mean that C   code would be changing something on the C stack back across a pike