Fix a deadlock on the interrupt guard machinery.
commit0b7cc0f0ab38dc907f8d32a929f66afcf09185ea
authorRodrigo Kumpera <kumpera@gmail.com>
Mon, 10 Jan 2011 13:32:42 +0000 (10 14:32 +0100)
committerRodrigo Kumpera <kumpera@gmail.com>
Mon, 10 Jan 2011 13:37:54 +0000 (10 14:37 +0100)
tree544bdda86f381ef2e84e7d7064e10b3737517628
parent556e665840fa9bd0a5bf71e93a814a20c3208b92
Fix a deadlock on the interrupt guard machinery.

* mini-exceptions.c (mono_walk_stack): Change the do_il_offset
parameter into unwind_options which is an enum that allows
multiple options to be passed.

* mini-exceptions.c (mono_jit_walk_stack_from_ctx): Ditto.

* mini.h: Introduce MonoUnwindOptions which allow stack
unwinding callers to specify that they don't want precise
method lookup (IOW, no need to deal with  gsharing) which
allow those functions to be signal safe.

* mini-exceptions.c (mono_install_handler_block_guard): Ask
mono_walk_stack to perform signal safe unwinding.

Fixes #662741
mono/mini/debugger-agent.c
mono/mini/mini-exceptions.c
mono/mini/mini.h