- All Superinterfaces:
Mirror
public interface EventQueue extends Mirror
Manager of incoming debugger events for a target VM.
Events are always grouped in
EventSets.
EventSets generated by the debugger back end can be read
here. There is one instance of EventQueue assigned to a particular
VirtualMachine.
Some events cause the suspension of the target VM - event requests
(com.sun.jdi.request) with a
suspend policy
of SUSPEND_ALL
or SUSPEND_EVENT_THREAD and sometimes VMStartEvent.
If these suspensions are not resumed the target VM will hang.
Thus, it is always good policy to
remove() every EventSet from the event queue until
an EventSet containing a VMDisconnectEvent is read.
Unless resume is
being handled in another way, each EventSet should invoke
EventSet.resume().
- Since:
- 1.3
- See Also:
EventSet,VirtualMachine
-
Method Details
-
remove
Waits forever for the next available event.- Returns:
- the next
EventSet. - Throws:
InterruptedException- if any thread has interrupted this thread.VMDisconnectedException- if the connection to the target VM is no longer available. Note this will always be preceded by aVMDisconnectEvent.
-
remove
Waits a specified time for the next available event.- Parameters:
timeout- Time in milliseconds to wait for the next event- Returns:
- the next
EventSet, or null if there is a timeout. - Throws:
InterruptedException- if any thread has interrupted this thread.VMDisconnectedException- if the connection to the target VM is no longer available. Note this will always be preceded by aVMDisconnectEvent.IllegalArgumentException- if the timeout argument contains an illegal value.
-