summaryrefslogtreecommitdiffstats
path: root/libjava/classpath/vm/reference/gnu/java
diff options
context:
space:
mode:
authordoko <doko@138bc75d-0d04-0410-961f-82ee72b054a4>2008-06-28 13:29:13 +0000
committerdoko <doko@138bc75d-0d04-0410-961f-82ee72b054a4>2008-06-28 13:29:13 +0000
commit1020ce5944edde4364baef4d371cd4f9b0dae721 (patch)
tree602cd7aa7c947386134690d8e0f6b53abcdeacb9 /libjava/classpath/vm/reference/gnu/java
parent9f41ce98ce6f4f7c8ac5e2c4b6e5d27e10201015 (diff)
downloadppe42-gcc-1020ce5944edde4364baef4d371cd4f9b0dae721.tar.gz
ppe42-gcc-1020ce5944edde4364baef4d371cd4f9b0dae721.zip
libjava/
2008-06-28 Matthias Klose <doko@ubuntu.com> Import GNU Classpath (classpath-0_97_2-release). * Regenerate class and header files. * Regenerate auto* files. * gcj/javaprims.h: Define jobjectRefType. * jni.cc (_Jv_JNI_GetObjectRefType): New (stub only). (_Jv_JNIFunctions): Initialize GetObjectRefType. * gnu/classpath/jdwp/VMVirtualMachine.java, java/security/VMSecureRandom.java: Merge from classpath. * HACKING: Fix typo. * ChangeLog-2007: New file. * configure.ac: Set JAVAC, pass --disable-regen-headers to classpath. libjava/classpath/ 2008-06-28 Matthias Klose <doko@ubuntu.com> * m4/ac_prog_javac.m4: Disable check for JAVAC, when not configured with --enable-java-maintainer-mode. * aclocal.m4, configure: Regenerate. * native/jni/gstreamer-peer/Makefile.am: Do not link with libclasspathnative. * native/jni/gstreamer-peer/Makefile.in: Regenerate. * tools/Makefile.am, lib/Makefile.am: Use JAVAC for setting JCOMPILER, drop flags not understood by gcj. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@137223 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/classpath/vm/reference/gnu/java')
-rw-r--r--libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java57
-rw-r--r--libjava/classpath/vm/reference/gnu/java/nio/VMChannel.java1
2 files changed, 52 insertions, 6 deletions
diff --git a/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java b/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java
index 43b9ae1a100..eade26374db 100644
--- a/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java
+++ b/libjava/classpath/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java
@@ -37,8 +37,14 @@ exception statement from your version. */
package gnu.java.lang.management;
+import java.lang.management.ManagementFactory;
+import java.lang.management.MemoryPoolMXBean;
+import java.lang.management.MemoryType;
import java.lang.management.MemoryUsage;
+import java.util.Iterator;
+import java.util.List;
+
/**
* Provides access to information about the memory
* management of the current invocation of the virtual
@@ -62,10 +68,7 @@ final class VMMemoryMXBeanImpl
*/
static MemoryUsage getHeapMemoryUsage()
{
- Runtime runtime = Runtime.getRuntime();
- long totalMem = runtime.totalMemory();
- return new MemoryUsage(-1, totalMem - runtime.freeMemory(),
- totalMem, runtime.maxMemory());
+ return getUsage(MemoryType.HEAP);
}
/**
@@ -76,7 +79,10 @@ final class VMMemoryMXBeanImpl
* @return an {@link java.lang.management.MemoryUsage} instance
* for non-heap memory.
*/
- static native MemoryUsage getNonHeapMemoryUsage();
+ static MemoryUsage getNonHeapMemoryUsage()
+ {
+ return getUsage(MemoryType.NON_HEAP);
+ }
/**
* Returns the number of objects ready to be garbage collected.
@@ -106,4 +112,45 @@ final class VMMemoryMXBeanImpl
*/
static native void setVerbose(boolean verbose);
+ /**
+ * Totals the memory usage from all the pools that match
+ * the given type.
+ *
+ * @param type the type of memory pools to accumulate
+ * (heap or non-heap).
+ * @return the memory usage overall.
+ */
+ private static MemoryUsage getUsage(MemoryType type) {
+ long init = 0, committed = 0, used = 0, max = 0;
+ Iterator pools =
+ ManagementFactory.getMemoryPoolMXBeans().iterator();
+ while (pools.hasNext())
+ {
+ MemoryPoolMXBean pool = (MemoryPoolMXBean) pools.next();
+ if (pool.getType() == type)
+ {
+ MemoryUsage usage = pool.getUsage();
+ if (init != -1)
+ {
+ long poolInit = usage.getInit();
+ if (poolInit == -1)
+ init = -1;
+ else
+ init += poolInit;
+ }
+ committed += usage.getCommitted();
+ used += usage.getUsed();
+ if (max != -1)
+ {
+ long poolMax = usage.getMax();
+ if (poolMax == -1)
+ max = -1;
+ else
+ max += poolMax;
+ }
+ }
+ }
+ return new MemoryUsage(init, used, committed, max);
+ }
+
}
diff --git a/libjava/classpath/vm/reference/gnu/java/nio/VMChannel.java b/libjava/classpath/vm/reference/gnu/java/nio/VMChannel.java
index 1f69877b6ba..a9d1452b72d 100644
--- a/libjava/classpath/vm/reference/gnu/java/nio/VMChannel.java
+++ b/libjava/classpath/vm/reference/gnu/java/nio/VMChannel.java
@@ -256,7 +256,6 @@ public final class VMChannel
* Assumes the that buffer list constains DirectBuffers. Will perform
* as gathering write.
*
- * @param fd
* @param srcs
* @param offset
* @param length
OpenPOWER on IntegriCloud