[threads] Remove dead field cached_culture_info (#4410)
[mono.git] / mcs / class / corlib / System.Threading / Thread.cs
index 24ada26034cf6194c17cda5df7c382b5f89942a7..9145dfd158e085542eb0216c3a2570a254b8bec5 100644 (file)
@@ -51,9 +51,7 @@ namespace System.Threading {
                // stores a thread handle
                IntPtr handle;
                IntPtr native_handle; // used only on Win32
-
-               /* Note this is an opaque object (an array), not a CultureInfo */
-               private object cached_culture_info;
+               IntPtr unused3;
                /* accessed only from unmanaged code */
                private IntPtr name;
                private int name_len; 
@@ -62,10 +60,6 @@ namespace System.Threading {
                private int abort_state_handle;
                /* thread_id is only accessed from unmanaged code */
                internal Int64 thread_id;
-               
-               /* start_notify is used by the runtime to signal that Start()
-                * is ok to return
-                */
                private IntPtr stack_ptr;
                private UIntPtr static_data; /* GC-tracked */
                private IntPtr runtime_thread_info;
@@ -94,6 +88,7 @@ namespace System.Threading {
                private int priority = (int) ThreadPriority.Normal;
                private IntPtr owned_mutex;
                private IntPtr suspended_event;
+               private int self_suspended;
                /* 
                 * These fields are used to avoid having to increment corlib versions
                 * when a new field is added to the unmanaged MonoThread structure.
@@ -287,17 +282,17 @@ namespace System.Threading {
                        }
                }
 
-               // Looks up the object associated with the current thread
-               // this is called by the JIT directly, too
                [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               private extern static InternalThread CurrentInternalThread_internal();
+               private extern static Thread GetCurrentThread ();
 
                public static Thread CurrentThread {
                        [ReliabilityContract (Consistency.WillNotCorruptState, Cer.MayFail)]
                        get {
-                               if (current_thread == null)
-                                       current_thread = new Thread (CurrentInternalThread_internal ());
-                               return current_thread;
+                               Thread current = current_thread;
+                               if (current != null)
+                                       return current;
+                               // This will set the current_thread tls variable
+                               return GetCurrentThread ();
                        }
                }