[coop] Disable exception checks in mono_threads_state_poll (), it could lead to infin...
authorZoltan Varga <vargaz@gmail.com>
Mon, 17 Aug 2015 20:45:19 +0000 (16:45 -0400)
committerZoltan Varga <vargaz@gmail.com>
Mon, 17 Aug 2015 20:45:27 +0000 (16:45 -0400)
mono/mini/mini-runtime.c

index 4bb248df4dc606aed5630258981c4ac8bb6be237..b5c07ef9a44dc482b947a52009d0b808c2e553e5 100644 (file)
@@ -616,6 +616,10 @@ mono_icall_get_wrapper_full (MonoJitICallInfo* callinfo, gboolean do_compile)
                /* This icall is used to check for exceptions, so don't check in the wrapper */
                check_exc = FALSE;
 
+       if (!strcmp (callinfo->name, "mono_threads_state_poll"))
+               /* Checking exceptions could lead to infinite recursion with mono_thread_interruption_checkpoint () */
+               check_exc = FALSE;
+
        name = g_strdup_printf ("__icall_wrapper_%s", callinfo->name);
        wrapper = mono_marshal_get_icall_wrapper (callinfo->sig, name, callinfo->func, check_exc);
        g_free (name);