Author: dick
Date: 2007-10-15 10:49:07 -0400 (Mon, 15 Oct 2007)
New Revision: 87515

Modified:
   trunk/mcs/class/corlib/System.Threading/ChangeLog
   trunk/mcs/class/corlib/System.Threading/Thread.cs
Log:

2007-10-15  Dick Porter  <[EMAIL PROTECTED]>

        * Thread.cs: Initialise synch_cs to null now we aren't using it as
        a monitor lock



Modified: trunk/mcs/class/corlib/System.Threading/ChangeLog
===================================================================
--- trunk/mcs/class/corlib/System.Threading/ChangeLog   2007-10-15 14:48:35 UTC 
(rev 87514)
+++ trunk/mcs/class/corlib/System.Threading/ChangeLog   2007-10-15 14:49:07 UTC 
(rev 87515)
@@ -1,3 +1,8 @@
+2007-10-15  Dick Porter  <[EMAIL PROTECTED]>
+
+       * Thread.cs: Initialise synch_cs to null now we aren't using it as
+       a monitor lock
+
 2007-09-25  Dick Porter  <[EMAIL PROTECTED]>
 
        * Thread.cs: Keep ManagedThreadId constant over the lifetime of a

Modified: trunk/mcs/class/corlib/System.Threading/Thread.cs
===================================================================
--- trunk/mcs/class/corlib/System.Threading/Thread.cs   2007-10-15 14:48:35 UTC 
(rev 87514)
+++ trunk/mcs/class/corlib/System.Threading/Thread.cs   2007-10-15 14:49:07 UTC 
(rev 87515)
@@ -88,8 +88,8 @@
                private IntPtr suspend_event;
                private IntPtr suspended_event;
                private IntPtr resume_event;
-               /* Don't lock on synch_lock in managed code, since it can 
result in deadlocks */
-               private object synch_lock = new Object();
+               /* Don't lock on synch_cs in managed code, since it can result 
in deadlocks */
+               private object synch_cs = null;
                private IntPtr serialized_culture_info;
                private int serialized_culture_info_len;
                private IntPtr serialized_ui_culture_info;
@@ -296,6 +296,9 @@
                [MethodImplAttribute(MethodImplOptions.InternalCall)]
                private extern IntPtr Thread_internal (MulticastDelegate start);
 
+               [MethodImplAttribute(MethodImplOptions.InternalCall)]
+               private extern void Thread_init ();
+
                private static int GetNewManagedId() {
                        return Interlocked.Increment(ref _managed_id_counter);
                }
@@ -305,6 +308,8 @@
                                throw new ArgumentNullException("Null 
ThreadStart");
                        }
                        threadstart=start;
+
+                       Thread_init ();
                        managed_id=GetNewManagedId();
                }
 

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to