Module jdk.jdi
Package com.sun.jdi.event

## Interface EventQueue

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 Summary

All Methods Instance Methods Abstract Methods
`EventSet` `remove()` Waits forever for the next available event.
`EventSet` `remove​(long timeout)` Waits a specified time for the next available event.

### Methods declared in interface com.sun.jdi.Mirror

`toString, virtualMachine`

### Method Detail

#### remove

    EventSet remove()
             throws InterruptedException

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 a `VMDisconnectEvent`.

#### remove

    EventSet remove​(long timeout)
             throws InterruptedException

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 a `VMDisconnectEvent`.
  `IllegalArgumentException` - if the timeout argument contains an illegal value.