From 968b23e5da9cad220f6c16701ea15dccdc91a329 Mon Sep 17 00:00:00 2001 From: Jonathan Chambers Date: Tue, 30 Aug 2016 11:32:53 -0400 Subject: [PATCH] Reset thread abort exception for internal threads regardless of unhandled exception policy. --- mono/metadata/threads.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/mono/metadata/threads.c b/mono/metadata/threads.c index 6870f431e8b..43dd5a430bc 100644 --- a/mono/metadata/threads.c +++ b/mono/metadata/threads.c @@ -5056,17 +5056,16 @@ mono_thread_internal_check_for_interruption_critical (MonoInternalThread *thread void mono_thread_internal_unhandled_exception (MonoObject* exc) { - if (mono_runtime_unhandled_exception_policy_get () == MONO_UNHANDLED_POLICY_CURRENT) { - MonoClass *klass = exc->vtable->klass; - if (is_threadabort_exception (klass)) { - mono_thread_internal_reset_abort (mono_thread_internal_current ()); - } else if (!is_appdomainunloaded_exception (klass)) { - mono_unhandled_exception (exc); - if (mono_environment_exitcode_get () == 1) { - mono_environment_exitcode_set (255); - mono_invoke_unhandled_exception_hook (exc); - g_assert_not_reached (); - } + MonoClass *klass = exc->vtable->klass; + if (is_threadabort_exception (klass)) { + mono_thread_internal_reset_abort (mono_thread_internal_current ()); + } else if (!is_appdomainunloaded_exception (klass) + && mono_runtime_unhandled_exception_policy_get () == MONO_UNHANDLED_POLICY_CURRENT) { + mono_unhandled_exception (exc); + if (mono_environment_exitcode_get () == 1) { + mono_environment_exitcode_set (255); + mono_invoke_unhandled_exception_hook (exc); + g_assert_not_reached (); } } } -- 2.25.1