# Runner::Context

<a id="context"></a>

# Context

```cpp
#include <icy/runner.h>

struct Context
```

[Defined in src/base/include/icy/runner.h:87](https://github.com/auscaster/icey/blob/main/src/base/include/icy/runner.h#L87)

[Context](#context) object which we send to the thread context.

This intermediate object allows us to garecefully handle late invokebacks and so avoid the need for deferred destruction of [`Runner`](https://auscaster.com/icey/docs/api-reference/icy-Runner.md#runner) objects.

## Public Attributes

| Return | Name | Description |
|--------|------|-------------|
| `std::thread::id` | [`tid`](#tid-1)  |  |
| `std::atomic< bool >` | [`running`](#running-1)  |  |
| `std::atomic< bool >` | [`cancelled`](#cancelled-2)  |  |
| `bool` | [`repeating`](#repeating-1)  |  |

---

<a id="tid-1"></a>

### tid

```cpp
std::thread::id tid
```

[Defined in src/base/include/icy/runner.h:89](https://github.com/auscaster/icey/blob/main/src/base/include/icy/runner.h#L89)

---

<a id="running-1"></a>

### running

```cpp
std::atomic< bool > running
```

[Defined in src/base/include/icy/runner.h:90](https://github.com/auscaster/icey/blob/main/src/base/include/icy/runner.h#L90)

---

<a id="cancelled-2"></a>

### cancelled

```cpp
std::atomic< bool > cancelled
```

[Defined in src/base/include/icy/runner.h:91](https://github.com/auscaster/icey/blob/main/src/base/include/icy/runner.h#L91)

---

<a id="repeating-1"></a>

### repeating

```cpp
bool repeating = false
```

[Defined in src/base/include/icy/runner.h:92](https://github.com/auscaster/icey/blob/main/src/base/include/icy/runner.h#L92)

## Public Methods

| Return | Name | Description |
|--------|------|-------------|
| `void` | [`reset`](#reset-6) `inline` | Resets the context to its initial state so it can be reused. The implementation must call this before restarting a [`Runner`](https://auscaster.com/icey/docs/api-reference/icy-Runner.md#runner). |
|  | [`Context`](#context-1) `inline` | Default constructor; calls [`reset()`](#reset-6) to initialize fields. |

---

<a id="reset-6"></a>

### reset

`inline`

```cpp
inline void reset()
```

[Defined in src/base/include/icy/runner.h:96](https://github.com/auscaster/icey/blob/main/src/base/include/icy/runner.h#L96)

Resets the context to its initial state so it can be reused. The implementation must call this before restarting a [`Runner`](https://auscaster.com/icey/docs/api-reference/icy-Runner.md#runner).

---

<a id="context-1"></a>

### Context

`inline`

```cpp
inline Context()
```

[Defined in src/base/include/icy/runner.h:103](https://github.com/auscaster/icey/blob/main/src/base/include/icy/runner.h#L103)

Default constructor; calls [`reset()`](#reset-6) to initialize fields.
