public class MonitorSnippets extends Object implements Snippets
Modifier and Type | Class and Description |
---|---|
static class |
MonitorSnippets.Options |
static class |
MonitorSnippets.Templates |
Modifier and Type | Field and Description |
---|---|
static boolean |
CHECK_BALANCED_MONITORS |
private static boolean |
ENABLE_BREAKPOINT
Leaving the breakpoint code in to provide an example of how to use the
BreakpointNode
intrinsic. |
(package private) static SnippetCounter |
lockBiasAcquired |
(package private) static SnippetCounter |
lockBiasExisting |
(package private) static SnippetCounter |
lockBiasTransfer |
(package private) static SnippetCounter |
lockCas |
(package private) static SnippetCounter |
lockCasRecursive |
private static SnippetCounter.Group |
lockCounters
Counters for the various paths for acquiring a lock.
|
(package private) static SnippetCounter |
lockStubEpochExpired |
(package private) static SnippetCounter |
lockStubFailedCas |
(package private) static SnippetCounter |
lockStubRevoke |
private static LocationIdentity |
MONITOR_COUNTER_LOCATION |
static ForeignCallDescriptor |
MONITORENTER |
static ForeignCallDescriptor |
MONITOREXIT |
private static boolean |
PROFILE_CONTEXT |
(package private) static SnippetCounter |
revokeBias |
private static String |
TRACE_METHOD_FILTER
Monitor operations in methods whose fully qualified name contains this substring will be
traced.
|
private static String |
TRACE_TYPE_FILTER
Monitor operations on objects whose type contains this substring will be traced.
|
(package private) static SnippetCounter |
unbiasable |
(package private) static SnippetCounter |
unlockBias |
(package private) static SnippetCounter |
unlockCas |
(package private) static SnippetCounter |
unlockCasRecursive |
private static SnippetCounter.Group |
unlockCounters
Counters for the various paths for releasing a lock.
|
(package private) static SnippetCounter |
unlockStub |
Constructor and Description |
---|
MonitorSnippets() |
Modifier and Type | Method and Description |
---|---|
(package private) static void |
bkpt(Object object,
Word mark,
Word tmp,
Word value) |
private static void |
checkCounter(String errMsg) |
private static void |
decCounter() |
private static boolean |
doProfile() |
private static void |
incCounter() |
private static void |
initCounter() |
static void |
monitorenter(Object object,
KlassPointer hub,
int lockDepth,
Register threadRegister,
Register stackPointerRegister,
boolean trace) |
static void |
monitorenterStub(Object object,
int lockDepth,
boolean trace)
Calls straight out to the monitorenter stub.
|
private static void |
monitorenterStubC(ForeignCallDescriptor descriptor,
Object object,
Word lock) |
static void |
monitorexit(Object object,
int lockDepth,
boolean trace) |
static void |
monitorexitStub(Object object,
int lockDepth,
boolean trace)
Calls straight out to the monitorexit stub.
|
private static void |
monitorexitStubC(ForeignCallDescriptor descriptor,
Object object,
Word lock) |
private static void |
trace(boolean enabled,
String format,
WordBase value) |
private static void |
traceObject(boolean enabled,
String action,
Object object,
boolean enter) |
private static final boolean PROFILE_CONTEXT
private static final String TRACE_TYPE_FILTER
private static final String TRACE_METHOD_FILTER
public static final boolean CHECK_BALANCED_MONITORS
private static final boolean ENABLE_BREAKPOINT
BreakpointNode
intrinsic.private static final LocationIdentity MONITOR_COUNTER_LOCATION
public static final ForeignCallDescriptor MONITORENTER
public static final ForeignCallDescriptor MONITOREXIT
private static final SnippetCounter.Group lockCounters
"lock"
are mutually exclusive. The other counters are for paths that may be shared.static final SnippetCounter lockBiasExisting
static final SnippetCounter lockBiasAcquired
static final SnippetCounter lockBiasTransfer
static final SnippetCounter lockCas
static final SnippetCounter lockCasRecursive
static final SnippetCounter lockStubEpochExpired
static final SnippetCounter lockStubRevoke
static final SnippetCounter lockStubFailedCas
static final SnippetCounter unbiasable
static final SnippetCounter revokeBias
private static final SnippetCounter.Group unlockCounters
"unlock"
are mutually exclusive. The other counters are for paths that may be shared.static final SnippetCounter unlockBias
static final SnippetCounter unlockCas
static final SnippetCounter unlockCasRecursive
static final SnippetCounter unlockStub
public MonitorSnippets()
private static boolean doProfile()
public static void monitorenter(Object object, KlassPointer hub, int lockDepth, Register threadRegister, Register stackPointerRegister, boolean trace)
public static void monitorenterStub(Object object, int lockDepth, boolean trace)
public static void monitorexit(Object object, int lockDepth, boolean trace)
public static void monitorexitStub(Object object, int lockDepth, boolean trace)
private static void traceObject(boolean enabled, String action, Object object, boolean enter)
private static void incCounter()
private static void decCounter()
private static void initCounter()
private static void checkCounter(String errMsg)
private static void monitorenterStubC(ForeignCallDescriptor descriptor, Object object, Word lock)
private static void monitorexitStubC(ForeignCallDescriptor descriptor, Object object, Word lock)