From a850dd23822bd7a67e1f660f2cd056ea29852a81 Mon Sep 17 00:00:00 2001 From: Andrew John Hughes Date: Mon, 25 Dec 2006 23:58:51 +0000 Subject: 2006-12-25 Andrew John Hughes * 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. --- doc/vmintegration.texinfo | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'doc') 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 -- cgit v1.2.1