[coop] switch to GC unsafe state in SIGINT handler as it may throw an exception
authorBernhard Urban <bernhard.urban@xamarin.com>
Wed, 14 Dec 2016 11:54:52 +0000 (12:54 +0100)
committerBernhard Urban <bernhard.urban@xamarin.com>
Tue, 20 Dec 2016 14:40:33 +0000 (15:40 +0100)
mono/mini/mini-runtime.c

index 6a3863670dedf74f6f1fc7ee0713b53ab91aa03a..edc8feb4982912cfd176136de81a6c6ace8609ef 100644 (file)
@@ -2849,9 +2849,13 @@ MONO_SIG_HANDLER_FUNC (, mono_sigint_signal_handler)
        MonoException *exc;
        MONO_SIG_HANDLER_GET_CONTEXT;
 
+       MONO_ENTER_GC_UNSAFE_UNBALANCED;
+
        exc = mono_get_exception_execution_engine ("Interrupted (SIGINT).");
 
        mono_arch_handle_exception (ctx, exc);
+
+       MONO_EXIT_GC_UNSAFE_UNBALANCED;
 }
 
 #ifndef DISABLE_REMOTING