< prev index next > src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/ObjectMonitor.java
Print this page
/*
- * Copyright (c) 2001, 2021, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
headerFieldOffset = f.getOffset();
f = type.getField("_object");
objectFieldOffset = f.getOffset();
f = type.getField("_owner");
ownerFieldOffset = f.getOffset();
+ f = type.getField("_stack_locker");
+ stackLockerFieldOffset = f.getOffset();
f = type.getField("_next_om");
nextOMFieldOffset = f.getOffset();
contentionsField = new CIntField(type.getCIntegerField("_contentions"), 0);
waitersField = new CIntField(type.getCIntegerField("_waiters"), 0);
recursionsField = type.getCIntegerField("_recursions");
public boolean isOwnedAnonymous() {
return addr.getAddressAt(ownerFieldOffset).asLongValue() == ANONYMOUS_OWNER;
}
public Address owner() { return addr.getAddressAt(ownerFieldOffset); }
+ public Address stackLocker() { return addr.getAddressAt(stackLockerFieldOffset); }
// FIXME
// void set_owner(void* owner);
public int waiters() { return (int)waitersField.getValue(this); }
// would confuse the SA's type system.
private static ObjectHeap heap;
private static long headerFieldOffset;
private static long objectFieldOffset;
private static long ownerFieldOffset;
+ private static long stackLockerFieldOffset;
private static long nextOMFieldOffset;
private static CIntField contentionsField;
private static CIntField waitersField;
private static CIntegerField recursionsField;
private static long ANONYMOUS_OWNER;
< prev index next >