[Mono-dev] [PATCH] Implement guarded finally blocks
Rodrigo Kumpera
kumpera at gmail.com
Wed Mar 24 14:59:01 EDT 2010
Hey,
Attached is the initial patch that implemented guarded finally blocks. It
only works on unix/x86.
It solves the problem of Thread::Abort been delivered in the middle of a
handler blocks. The correct
behavior is to raise the exception right after the handler finishes. This
applies to catch, finally and fault
handlers, I'm not sure about filter. This patch only deals with finally
clauses.
It does handle finally clauses by patching the return address from the
finally clause to call back into the
runtime so we can resume interruption. We patch in a thunk that restores the
return address and
calls into the effective trampoline.
Please review,
Rodrigo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20100324/2ac19315/attachment-0001.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: handler_block_guard_1.patch
Type: text/x-patch
Size: 17802 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20100324/2ac19315/attachment-0001.bin
More information about the Mono-devel-list
mailing list