Interface EventSet
public interface EventSet extends Mirror, Set<Event>
Several Event
objects may be created at a given time by the target VirtualMachine
. For example, there may be more than one BreakpointRequest
for a given Location
or you might single step to the same location as a BreakpointRequest. These Event
objects are delivered together as an EventSet. For uniformity, an EventSet is always used to deliver Event
objects. EventSets are delivered by the EventQueue
. EventSets are unmodifiable.
Associated with the issuance of an event set, suspensions may have occurred in the target VM. These suspensions correspond with the suspend policy
. To assure matching resumes occur, it is recommended, where possible, to complete the processing of an event set with EventSet.resume()
.
The events that are grouped in an EventSet are restricted in the following ways:
- Always singleton sets:
- Only with other VMDeathEvents:
- Only with other ThreadStartEvents for the same thread:
- Only with other ThreadDeathEvents for the same thread:
- Only with other ClassPrepareEvents for the same class:
- Only with other ClassUnloadEvents for the same class:
- Only with other AccessWatchpointEvents for the same field access:
- Only with other ModificationWatchpointEvents for the same field modification:
- Only with other ExceptionEvents for the same exception occurrance:
- Only with other MethodExitEvents for the same method exit:
- Only with other Monitor contended enter events for the same monitor object:
- Monitor Contended Enter Event
- Only with other Monitor contended entered events for the same monitor object:
- Monitor Contended Entered Event
- Only with other Monitor wait events for the same monitor object:
- Monitor Wait Event
- Only with other Monitor waited events for the same monitor object:
- Monitor Waited Event
- Only with other members of this group, at the same location and in the same thread:
- Since:
- 1.3
- See Also:
-
Event
,EventQueue
Methods
Modifier and Type | Method | Description |
---|---|---|
EventIterator | eventIterator() | Return an iterator specific to |
void | resume() | Resumes threads suspended by this event set. |
int | suspendPolicy() | Returns the policy used to suspend threads in the target VM for this event set. |
Methods declared in interface java.util.Collection
parallelStream, removeIf, stream, toArray
Methods declared in interface java.lang.Iterable
forEach
Methods declared in interface com.sun.jdi.Mirror
toString, virtualMachine
Methods declared in interface java.util.Set
add, addAll, clear, contains, containsAll, equals, hashCode, isEmpty, iterator, remove, removeAll, retainAll, size, spliterator, toArray, toArray
Methods
suspendPolicy
int suspendPolicy()
Returns the policy used to suspend threads in the target VM for this event set. This policy is selected from the suspend policies for each event's request; the target VM chooses the policy which suspends the most threads. The target VM suspends threads according to that policy and that policy is returned here. See EventRequest
for the possible policy values.
In rare cases, the suspend policy may differ from the requested value if a ClassPrepareEvent
has occurred in a debugger system thread. See ClassPrepareEvent.thread()
for details.
- Returns:
- the suspendPolicy which is either
SUSPEND_ALL
,SUSPEND_EVENT_THREAD
orSUSPEND_NONE
.
eventIterator
EventIterator eventIterator()
Return an iterator specific to Event
objects.
resume
void resume()
Resumes threads suspended by this event set. If the suspendPolicy()
is EventRequest.SUSPEND_ALL
, a call to this method is equivalent to VirtualMachine.resume()
. If the suspend policy is EventRequest.SUSPEND_EVENT_THREAD
, a call to this method is equivalent to ThreadReference.resume()
for the event thread. Otherwise, a call to this method is a no-op.
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/jdk.jdi/com/sun/jdi/event/EventSet.html