mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
8288064: Class initialization locking
Reviewed-by: rehn, vlivanov
This commit is contained in:
parent
3d12c0225b
commit
cf4a4966a8
14 changed files with 140 additions and 172 deletions
|
@ -60,6 +60,7 @@ public class InstanceKlass extends Klass {
|
|||
// ClassState constants
|
||||
private static int CLASS_STATE_ALLOCATED;
|
||||
private static int CLASS_STATE_LOADED;
|
||||
private static int CLASS_STATE_BEING_LINKED;
|
||||
private static int CLASS_STATE_LINKED;
|
||||
private static int CLASS_STATE_BEING_INITIALIZED;
|
||||
private static int CLASS_STATE_FULLY_INITIALIZED;
|
||||
|
@ -118,6 +119,7 @@ public class InstanceKlass extends Klass {
|
|||
// read ClassState constants
|
||||
CLASS_STATE_ALLOCATED = db.lookupIntConstant("InstanceKlass::allocated").intValue();
|
||||
CLASS_STATE_LOADED = db.lookupIntConstant("InstanceKlass::loaded").intValue();
|
||||
CLASS_STATE_BEING_LINKED = db.lookupIntConstant("InstanceKlass::being_linked").intValue();
|
||||
CLASS_STATE_LINKED = db.lookupIntConstant("InstanceKlass::linked").intValue();
|
||||
CLASS_STATE_BEING_INITIALIZED = db.lookupIntConstant("InstanceKlass::being_initialized").intValue();
|
||||
CLASS_STATE_FULLY_INITIALIZED = db.lookupIntConstant("InstanceKlass::fully_initialized").intValue();
|
||||
|
@ -184,6 +186,7 @@ public class InstanceKlass extends Klass {
|
|||
public static class ClassState {
|
||||
public static final ClassState ALLOCATED = new ClassState("allocated");
|
||||
public static final ClassState LOADED = new ClassState("loaded");
|
||||
public static final ClassState BEING_LINKED = new ClassState("beingLinked");
|
||||
public static final ClassState LINKED = new ClassState("linked");
|
||||
public static final ClassState BEING_INITIALIZED = new ClassState("beingInitialized");
|
||||
public static final ClassState FULLY_INITIALIZED = new ClassState("fullyInitialized");
|
||||
|
@ -207,6 +210,8 @@ public class InstanceKlass extends Klass {
|
|||
return ClassState.ALLOCATED;
|
||||
} else if (state == CLASS_STATE_LOADED) {
|
||||
return ClassState.LOADED;
|
||||
} else if (state == CLASS_STATE_BEING_LINKED) {
|
||||
return ClassState.BEING_LINKED;
|
||||
} else if (state == CLASS_STATE_LINKED) {
|
||||
return ClassState.LINKED;
|
||||
} else if (state == CLASS_STATE_BEING_INITIALIZED) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue