Ticket #1635 (closed experimental: fixed)
Runloop unrolling for exception handling
|Reported by:||NotFound||Owned by:||whiteknight|
The attached patch is a proof of concept implementation of a runloop unrolling for exception handling. The idea is that when a exception handler takes care and finishes the handling, it signals that decision and the control return to the runloop that established the handler, unrolling the C stack if needed.
The second attach is an example of use.
For simplicity, this implementation uses a method in the ExceptionHandler PMC. A specific opcode will simplify the usage.
It uses the ExceptionHandler object to identify the runloop, but the 'push_eh label' doesn't provide one. A variant '$P0 = push_eh label' is a possible solution.