2010-02-19 Zoltan Varga <vargaz@gmail.com>
authorZoltan Varga <vargaz@gmail.com>
Fri, 19 Feb 2010 22:58:37 +0000 (22:58 -0000)
committerZoltan Varga <vargaz@gmail.com>
Fri, 19 Feb 2010 22:58:37 +0000 (22:58 -0000)
* threads.c (mono_thread_suspend_all_other_threads): Ignore threads which have
the DONT_MANAGE flag set.

svn path=/trunk/mono/; revision=152107

mono/metadata/ChangeLog
mono/metadata/threads.c

index 5aadc2b7f4a11e2544fcc0a236788f1b073e31a5..c61b19408ee3b83c5b54eac4af20298a06f1abe5 100644 (file)
@@ -1,3 +1,8 @@
+2010-02-19  Zoltan Varga  <vargaz@gmail.com>
+
+       * threads.c (mono_thread_suspend_all_other_threads): Ignore threads which have
+       the DONT_MANAGE flag set.
+
 2010-02-19  Rodrigo Kumpera  <rkumpera@novell.com>
 
        * domain.c: Remove old v1 version strings. Let the runtime
index 8ed22f2d0239d974283754b25f6e463126a70ce3..630d8f6f288de9878dc458ec5ccacd70909ff847 100644 (file)
@@ -3090,7 +3090,7 @@ void mono_thread_suspend_all_other_threads (void)
                        MonoInternalThread *thread = wait->threads [i];
                        gboolean signal_suspend = FALSE;
 
-                       if ((thread->tid == self) || mono_gc_is_finalizer_internal_thread (thread)) {
+                       if ((thread->tid == self) || mono_gc_is_finalizer_internal_thread (thread) || (thread->flags & MONO_THREAD_FLAG_DONT_MANAGE)) {
                                //CloseHandle (wait->handles [i]);
                                wait->threads [i] = NULL; /* ignore this thread in next loop */
                                continue;