summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorAndrew John Hughes <gnu_andrew@member.fsf.org>2006-12-25 23:58:51 +0000
committerAndrew John Hughes <gnu_andrew@member.fsf.org>2006-12-25 23:58:51 +0000
commita850dd23822bd7a67e1f660f2cd056ea29852a81 (patch)
treec83b223da9ae04b27d8a9ea9ff6c108fc471d3ef /doc
parent767e9897197de5459970fe871cf4c2444fd63fff (diff)
downloadclasspath-a850dd23822bd7a67e1f660f2cd056ea29852a81.tar.gz
2006-12-25 Andrew John Hughes <gnu_andrew@member.fsf.org>
* doc/vmintegration.texinfo: Updated to match new threading bean API. * gnu/java/lang/management/ThreadMXBeanImpl.java: (MONITOR_SUPPORT): New constant for object monitor lock support property. (SYNCHRONIZER_SUPPORT): New constant for ownable synchronizer lock support property. (dumpAllThreads(boolean,boolean)): Implemented. (findDeadlockedThreads()): Likewise. (getThreadInfo(long[],boolean,boolean)): Likewise. (isObjectMonitorUsageSupported()): Likewise. (isSynchronizerUsageSupported()): Likewise. * java/lang/management/ThreadInfo.java: (ThreadInfo(Thread,long,long,Object,Thread,long, long,boolean,boolean,StackTraceElement[], MonitorInfo[], LockInfo[])): New constructor. (ThreadInfo(long,String,Thread.State,long,long, String,long,String,long,long,boolean,boolean, StackTraceElement[],MonitorInfo[], LockInfo[])): Likewise. (from(CompositeData)): Updated to handle new attributes. (getLockedMonitors()): Implemented. (getLockedSynchronizers()): Likewise. (getLockInfo()): Likewise. (getLockName()): Handle blocking as documented in 1.6 (getLockOwnerId()): Likewise. (getLockOwnerName()): Likewise. (toString()): Likewise. (isThreadBlocked()): Thread blocked check based on documented 1.6 semantics. * java/lang/management/ThreadMXBean.java: (dumpAllThreads(boolean,boolean)): Implemented. (findDeadlockedThreads()): Likewise. (getThreadInfo(long[],boolean,boolean)): Likewise. (isObjectMonitorUsageSupported()): Likewise. (isSynchronizerUsageSupported()): Likewise. * vm/reference/gnu/java/lang/management/VMThreadMXBeanImpl.java: (findDeadlockedThreads()): New native method. (getLockInfo(ThreadInfo)): Likewise. (getMonitorInfo(ThreadInfo)): Likewise.
Diffstat (limited to 'doc')
-rw-r--r--doc/vmintegration.texinfo27
1 files changed, 25 insertions, 2 deletions
diff --git a/doc/vmintegration.texinfo b/doc/vmintegration.texinfo
index 6d59b5d8f..698560dad 100644
--- a/doc/vmintegration.texinfo
+++ b/doc/vmintegration.texinfo
@@ -1376,6 +1376,12 @@ time used by all threads.
@item @code{gnu.java.lang.management.ThreadContentionSupport} --
This property should be present if the VM supports thread contention
monitoring.
+@item @code{gnu.java.lang.management.MonitorUsageMonitoringSupport} --
+This property should be present if the VM supports the monitoring
+of object monitor usage.
+@item @code{gnu.java.lang.management.OwnableSynchronizerUsageMonitoringSupport} --
+This property should be present if the VM supports the monitoring
+of ownable synchronizer usage.
@end itemize
In addition, the property
@@ -1386,11 +1392,18 @@ is enabled at startup.
The methods are as follows:
@itemize @bullet
+@item @code{(findDeadlockedThreads())} -- This should return
+an array of thread identifiers which match threads involved in
+deadlock cycles (where each thread is waiting to obtain a lock
+held by one of the others) on object monitors or ownable
+synchronizers. This is specified as a native method in the
+reference implementation, and is optional. It is only called
+when the VM supports ownable synchronizer monitoring.
@item @code{(findMonitorDeadlockedThreads())} -- This should return
an array of thread identifiers which match threads involved in
deadlock cycles (where each thread is waiting to obtain a lock
-held by one of the others). This is specified as a native method
-in the reference implementation.
+held by one of the others) on object monitors. This is specified
+as a native method in the reference implementation.
@item @code{(getAllThreads())} -- This should return an array of
all live threads and set the @code{filled} variable to the number
found. A default implementation is provided.
@@ -1408,6 +1421,16 @@ supporting time monitoring.
@item @code{(getDaemonThreadCount())} -- This should return the number
of live daemon threads. A default implementation is provided, based
on @code{getAllThreads()}.
+@item @code{(getLockInfo(ThreadInfo))} -- This is an optional native
+method called when the VM supports ownable synchronizer usage monitoring
+and the user has requested information for a particular thread. The
+supplied @code{ThreadInfo} object should be filled out with an
+array of @code{LockInfo} objects, providing details on each lock.
+@item @code{(getMonitorInfo(ThreadInfo))} -- This is an optional native
+method called when the VM supports object monitor usage monitoring
+and the user has requested information for a particular thread. The
+supplied @code{ThreadInfo} object should be filled out with an
+array of @code{MonitorInfo} objects, providing details on each lock.
@item @code{(getPeakThreadCount())} -- The VM should maintain a record
of the peak number of live threads, and return it when this method is
called. This is specified as a native method in the reference