# This line is parsed by tools besides autoconf, such as msvc/mono.winconfig.targets.
# It should remain in the format they expect.
#
-MONO_CORLIB_VERSION=21aeaa06-293b-4279-82ce-2a32285a3ea3
+MONO_CORLIB_VERSION=ddb2b1db-a7eb-4786-bab3-fd15de35671c
#
# Put a quoted #define in config.h.
#else
struct _MonoInternalThread {
#endif
+ // FIXME: Mechanize keeping this in sync with managed.
MonoObject obj;
volatile int lock_thread_id; /* to be used as the pre-shifted thread id in thin locks. Used for appdomain_ref push/pop */
MonoThreadHandle *handle;
gpointer native_handle;
- gpointer unused3;
gunichar2 *name;
guint32 name_len;
guint32 state; /* must be accessed while longlived->synch_cs is locked */
gint32 managed_id;
guint32 small_id;
MonoThreadManageCallback manage_callback;
- gpointer unused4;
gsize flags;
gpointer thread_pinning_ref;
gsize __abort_protected_block_count;
GPtrArray *owned_mutexes;
MonoOSEvent *suspended;
gint32 self_suspended; // TRUE | FALSE
-
gsize thread_state;
+
#ifdef ENABLE_NETCORE
struct _MonoThread *internal_thread;
MonoObject *start_obj;
MonoException *pending_exception;
#else
- /*
- * These fields are used to avoid having to increment corlib versions
- * when a new field is added to this structure.
- * Please synchronize any changes with InternalThread in Thread.cs, i.e. add the
- * same field there.
- */
- gsize unused2;
+ void* unused [3]; // same size as netcore
#endif
/* This is used only to check that we are in sync between the representation
* of MonoInternalThread in native and InternalThread in managed
// stores a thread handle
IntPtr handle;
IntPtr native_handle; // used only on Win32
- IntPtr unused3;
/* accessed only from unmanaged code */
private IntPtr name;
private int name_len;
internal int managed_id;
private int small_id;
private IntPtr manage_callback;
- private IntPtr unused4;
private IntPtr flags;
private IntPtr thread_pinning_ref;
private IntPtr abort_protected_block_count;
private IntPtr suspended_event;
private int self_suspended;
private IntPtr thread_state;
+
private Thread self;
private object pending_exception;
private object start_obj;