# `ClaudeAgentSDK.AbortSignal`
[🔗](https://github.com/nshkrdotcom/claude_agent_sdk/blob/v0.16.0/lib/claude_agent_sdk/abort_signal.ex#L1)

Lightweight cancellation token shared with callbacks.

Callbacks receive this via `:signal` in their context and can poll
`cancelled?/1` to cooperatively stop work when a cancel or shutdown
occurs.

# `t`

```elixir
@type t() :: %ClaudeAgentSDK.AbortSignal{ref: :atomics.atomics_ref()}
```

# `cancel`

```elixir
@spec cancel(t()) :: :ok
```

Marks the signal as cancelled.

# `cancelled?`

```elixir
@spec cancelled?(t() | nil) :: boolean()
```

Returns true if the signal has been cancelled.

# `new`

```elixir
@spec new() :: t()
```

Creates a new abort signal.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
