/*
* Copyright (c) 1998, 2006, Oracle and/or its affiliates. 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. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package com.sun.jdi;
import java.util.List;
A thread group object from the target VM. A ThreadGroupReference is an ObjectReference
with additional access to threadgroup-specific information from the target VM. Author: Robert Field, Gordon Hirsch, James McIlree Since: 1.3
/**
* A thread group object from the target VM.
* A ThreadGroupReference is an {@link ObjectReference} with additional
* access to threadgroup-specific information from the target VM.
*
* @author Robert Field
* @author Gordon Hirsch
* @author James McIlree
* @since 1.3
*/
public interface ThreadGroupReference extends ObjectReference
{
Returns the name of this thread group.
Returns: the string containing the thread group name.
/**
* Returns the name of this thread group.
*
* @return the string containing the thread group name.
*/
String name();
Returns the parent of this thread group.
Returns: a ThreadGroupReference
mirroring the parent of this thread group in the target VM, or null if this is a top-level thread group.
/**
* Returns the parent of this thread group.
*
* @return a {@link ThreadGroupReference} mirroring the parent of this
* thread group in the target VM, or null if this is a top-level
* thread group.
*/
ThreadGroupReference parent();
Suspends all threads in this thread group. Each thread in this group and in all of its subgroups will be suspended as described in ThreadReference.suspend
. This is not guaranteed to be an atomic operation; if the target VM is not interrupted at the time this method is called, it is possible that new threads will be created between the time that threads are enumerated and all of them have been suspended. Throws: - VMCannotBeModifiedException – if the VirtualMachine is read-only - see
VirtualMachine.canBeModified()
.
/**
* Suspends all threads in this thread group. Each thread
* in this group and in all of its subgroups will be
* suspended as described in {@link ThreadReference#suspend}.
* This is not guaranteed to be an atomic
* operation; if the target VM is not interrupted at the time
* this method is
* called, it is possible that new threads will be created
* between the time that threads are enumerated and all of them
* have been suspended.
* @throws VMCannotBeModifiedException if the VirtualMachine is read-only - see {@link VirtualMachine#canBeModified()}.
*/
void suspend();
Resumes all threads in this thread group. Each thread in this group and in all of its subgroups will be resumed as described in ThreadReference.resume
. Throws: - VMCannotBeModifiedException – if the VirtualMachine is read-only - see
VirtualMachine.canBeModified()
.
/**
* Resumes all threads in this thread group. Each thread
* in this group and in all of its subgroups will be
* resumed as described in {@link ThreadReference#resume}.
* @throws VMCannotBeModifiedException if the VirtualMachine is read-only - see {@link VirtualMachine#canBeModified()}.
*/
void resume();
Returns a List containing a ThreadReference
for each live thread in this thread group. Only the live threads in this immediate thread group (and not its subgroups) are returned. A thread is alive if it has been started and has not yet been stopped. Returns: a List of ThreadReference
objects mirroring the live threads from this thread group in the target VM.
/**
* Returns a List containing a {@link ThreadReference} for each live thread
* in this thread group. Only the live threads in this immediate thread group
* (and not its subgroups) are returned. A thread is alive if it
* has been started and has not yet been stopped.
*
* @return a List of {@link ThreadReference} objects mirroring the
* live threads from this thread group in the target VM.
*/
List<ThreadReference> threads();
Returns a List containing each active ThreadGroupReference
in this thread group. Only the active thread groups in this immediate thread group (and not its subgroups) are returned. See java.lang.ThreadGroup
for information about 'active' ThreadGroups.
Returns: a List of ThreadGroupReference
objects mirroring the active thread groups from this thread group in the target VM.
/**
* Returns a List containing each active {@link ThreadGroupReference} in this
* thread group. Only the active thread groups in this immediate thread group
* (and not its subgroups) are returned.
* See <a href="{@docRoot}/../../../../api/java/lang/ThreadGroup.html">java.lang.ThreadGroup</a>
* for information about 'active' ThreadGroups.
* @return a List of {@link ThreadGroupReference} objects mirroring the
* active thread groups from this thread group in the target VM.
*/
List<ThreadGroupReference> threadGroups();
}