EventQueue (Java SE 12 & JDK 12 )
Keywords: com.sun.jdi.event.EventQueue interface

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

    Modifier and Type | Method | Description
    --- | --- | ---
    `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.