[threads] Remove dead field cached_culture_info (#4410)
[mono.git] / mcs / class / corlib / System.Threading / Thread.cs
index b8c91df3940489eac573c9c2801590be6298de8d..9145dfd158e085542eb0216c3a2570a254b8bec5 100644 (file)
@@ -49,10 +49,9 @@ namespace System.Threading {
                #region Sync with metadata/object-internals.h
                int lock_thread_id;
                // stores a thread handle
-               internal IntPtr system_thread_handle;
-
-               /* Note this is an opaque object (an array), not a CultureInfo */
-               private object cached_culture_info;
+               IntPtr handle;
+               IntPtr native_handle; // used only on Win32
+               IntPtr unused3;
                /* accessed only from unmanaged code */
                private IntPtr name;
                private int name_len; 
@@ -61,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;
@@ -92,6 +87,8 @@ namespace System.Threading {
                private IntPtr abort_protected_block_count;
                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.
@@ -109,11 +106,11 @@ namespace System.Threading {
 
                // Closes the system thread handle
                [MethodImplAttribute(MethodImplOptions.InternalCall)]
-               private extern void Thread_free_internal(IntPtr handle);
+               private extern void Thread_free_internal();
 
                [ReliabilityContract (Consistency.WillNotCorruptState, Cer.Success)]
                ~InternalThread() {
-                       Thread_free_internal(system_thread_handle);
+                       Thread_free_internal();
                }
        }
 
@@ -285,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 ();
                        }
                }
 
@@ -460,6 +457,12 @@ namespace System.Threading {
                {
                        throw new PlatformNotSupportedException ("Thread.ResetAbort is not supported on the current platform.");
                }
+
+               internal object AbortReason {
+                       get {
+                               throw new PlatformNotSupportedException ("Thread.ResetAbort is not supported on the current platform.");
+                       }
+               }
 #endif // MONO_FEATURE_THREAD_ABORT
 
                [MethodImplAttribute (MethodImplOptions.InternalCall)]
@@ -704,5 +707,10 @@ namespace System.Threading {
                        throw new PlatformNotSupportedException ("Thread.Resume is not supported on the current platform.");
                }
 #endif
+
+               public void DisableComObjectEagerCleanup ()
+               {
+                       throw new PlatformNotSupportedException ();
+               }
        }
 }