summaryrefslogtreecommitdiff
path: root/docs/reference/src/aio/nng_aio_stop.md
blob: 01e328b1f50ed5424a4c7ef8eb17b1358e5053c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# nng_aio_stop

## NAME

nng_aio_stop - stop asynchronous I/O operation

## SYNOPSIS

```c
#include <nng/nng.h>

void nng_aio_stop(nng_aio *aio);
```

## DESCRIPTION

The `nng_aio_stop()` function stops the asynchronous I/O operation
associated with _aio_ by aborting with `NNG_ECANCELED`, and then waits
for it to complete or to be completely aborted, and for the
callback associated with the _aio_ to have completed executing.

Further calls to
[`nng_aio_begin()`][nng_aio_begin] using this _aio_ will return `false`.

It is safe to call this for an _aio_, even when no operation is currently
pending for it.

> [!TIP]
> When multiple asynchronous I/O handles are in use and need to be
> shut down, it is safest to stop all of them, before deallocating any of
> them with [`nng_aio_free()`][nng_aio_free], particularly if the callbacks
> might attempt to reschedule additional operations.

## SEE ALSO

[nng_aio_cancel][nng_aio_cancel],
[nng_aio_free][nng_aio_free],
[nng_aio_wait][nng_aio_wait]

{{#include ../refs.md}}