[threadpool] Use threadpool->threads instead of threadpool->counters to wait on clean...
[mono.git] / mono / metadata / class-internals.h
index 5ff799cc626c810b7ccb58c4a6c4f8da2c4170c4..dab2cc743c9011ef0e6d2ce4828da1f9c4b6e6be 100644 (file)
@@ -10,7 +10,6 @@
 #include <mono/metadata/mempool.h>
 #include <mono/metadata/metadata-internals.h>
 #include <mono/metadata/property-bag.h>
-#include <mono/io-layer/io-layer.h>
 #include "mono/utils/mono-compiler.h"
 #include "mono/utils/mono-error.h"
 #include "mono/sgen/gc-internal-agnostic.h"
@@ -278,6 +277,7 @@ struct _MonoClass {
         * initialise all static fields.
         */
        /* size_inited is accessed without locks, so it needs a memory barrier */
+       /* All flag bits should be written while holding the loader lock */
        guint size_inited     : 1;
        guint valuetype       : 1; /* derives from System.ValueType */
        guint enumtype        : 1; /* derives from System.Enum */
@@ -459,8 +459,9 @@ struct MonoVTable {
        guint8     *interface_bitmap;
        guint32     max_interface_id;
        guint8      rank;
+       /* Keep this a guint8, the jit depends on it */
+       guint8      initialized; /* cctor has been run */
        guint remote          : 1; /* class is remotely activated */
-       guint initialized     : 1; /* cctor has been run */
        guint init_failed     : 1; /* cctor execution failed */
        guint has_static_fields : 1; /* pointer to the data stored at the end of the vtable array */
        guint gc_bits         : MONO_VTABLE_AVAILABLE_GC_BITS; /* Those bits are reserved for the usaged of the GC */