- All Superinterfaces:
Mirror
public interface EventQueue extends Mirror
Manager of incoming debugger events for a target VM.
Events are always grouped in
EventSet
s.
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.
-