# Interface ISuspendResume

All Known Subinterfaces:
  `IDebugTarget, IStackFrame, IThread`

public interface ISuspendResume
Provides the ability to suspend and resume a thread or debug target.

Clients may implement this interface.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`canResume()`
Returns whether this element can currently be resumed.
`boolean`
`canSuspend()`
Returns whether this element can currently be suspended.
`boolean`
`isSuspended()`
Returns whether this element is currently suspended.
`void`
`resume()`
Causes this element to resume its execution, generating a `RESUME` event.
`void`
`suspend()`
Causes this element to suspend its execution, generating a `SUSPEND` event.

## Method Details

### canResume

boolean canResume()
Returns whether this element can currently be resumed.

Returns:
  whether this element can currently be resumed

### canSuspend

boolean canSuspend()
Returns whether this element can currently be suspended.

Returns:
  whether this element can currently be suspended

### isSuspended

boolean isSuspended()
Returns whether this element is currently suspended.

Returns:
  whether this element is currently suspended

### resume

void resume() throws DebugException
Causes this element to resume its execution, generating a `RESUME` event. Has no effect on an element that is not suspended. This call is non-blocking.

Throws:
  `DebugException` - on failure. Reasons include:
  - TARGET_REQUEST_FAILED - The request failed in the target
  - NOT_SUPPORTED - The capability is not supported by the target

### suspend

void suspend() throws DebugException
Causes this element to suspend its execution, generating a `SUSPEND` event. Has no effect on an already suspended element. Implementations may be blocking or non-blocking.

Throws:
  `DebugException` - on failure. Reasons include:
  - TARGET_REQUEST_FAILED - The request failed in the target
  - NOT_SUPPORTED - The capability is not supported by the target