Mercurial > hg > truffle
view agent/src/share/classes/sun/jvm/hotspot/jdi/ThreadGroupReferenceImpl.java @ 607:d8c7fa77a6dc
Merge
author | kvn |
---|---|
date | Tue, 03 Mar 2009 10:34:22 -0800 |
parents | a61af66fc99e |
children | c18cbe5936b8 |
line wrap: on
line source
/* * Copyright 2002-2003 Sun Microsystems, Inc. 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. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. * */ package sun.jvm.hotspot.jdi; import sun.jvm.hotspot.oops.Oop; import sun.jvm.hotspot.oops.Instance; import sun.jvm.hotspot.oops.OopUtilities; import sun.jvm.hotspot.runtime.JavaThread; import com.sun.jdi.*; import java.util.*; public class ThreadGroupReferenceImpl extends ObjectReferenceImpl implements ThreadGroupReference { ThreadGroupReferenceImpl(VirtualMachine aVm, sun.jvm.hotspot.oops.Oop oRef) { super(aVm, oRef); } protected String description() { return "ThreadGroupReference " + uniqueID(); } public String name() { return OopUtilities.threadGroupOopGetName(ref()); } public ThreadGroupReference parent() { return (ThreadGroupReferenceImpl)vm.threadGroupMirror( (Instance)OopUtilities.threadGroupOopGetParent(ref())); } public void suspend() { vm.throwNotReadOnlyException("ThreadGroupReference.suspend()"); } public void resume() { vm.throwNotReadOnlyException("ThreadGroupReference.resume()"); } public List threads() { // Each element of this array is the Oop for a thread; // NOTE it is not the JavaThread that we need to create // a ThreadReferenceImpl. Oop[] myThreads = OopUtilities.threadGroupOopGetThreads(ref()); ArrayList myList = new ArrayList(myThreads.length); for (int ii = 0; ii < myThreads.length; ii++) { JavaThread jt = OopUtilities.threadOopGetJavaThread(myThreads[ii]); if (jt != null) { ThreadReferenceImpl xx = (ThreadReferenceImpl)vm.threadMirror(jt); myList.add(xx); } } return myList; } public List threadGroups() { Oop[] myGroups = OopUtilities.threadGroupOopGetGroups(ref()); ArrayList myList = new ArrayList(myGroups.length); for (int ii = 0; ii < myGroups.length; ii++) { ThreadGroupReferenceImpl xx = (ThreadGroupReferenceImpl)vm.threadGroupMirror( (Instance)myGroups[ii]); myList.add(xx); } return myList; } public String toString() { return "instance of " + referenceType().name() + "(name='" + name() + "', " + "id=" + uniqueID() + ")"; } }