---
name: "nng_aio_finish"
section: "3"
platform: "linux"
package: "libnng-dev"
version: "1.10.1-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/nng_aio_finish"
---

# nng\_aio\_finish(3)

finish asynchronous I/O operation

## NAME

nng\_aio\_finish - finish asynchronous I/O operation

## SYNOPSIS

```
#include <nng/nng.h>
void nng_aio_finish(nng_aio *aio, int err);
```

## DESCRIPTION

The `nng_aio_finish()` function marks operation associated with *aio* as complete, with the status *err*. This will be the result returned by `nng_aio_result()`.

This function causes the callback associated with the *aio* to called.

**Important**\

It is mandatory that operation providers call this function **exactly once** when they are finished with the operation. After calling this function they **must not** perform any further accesses to the *aio*.

**Note**\

This function is only for I/O providers (those actually performing the operation such as HTTP handler functions or transport providers); ordinary users of the *aio* should not have any need for this function.

## RETURN VALUES

None.

## ERRORS

None.

## SEE ALSO

[nng\_aio\_alloc(3)](/nng_aio_alloc/3.md), [nng\_aio\_begin(3)](/nng_aio_begin/3.md), [nng\_aio\_cancel(3)](/nng_aio_cancel/3.md), [nng\_aio\_defer(3)](/nng_aio_defer/3.md), [nng\_aio\_result(3)](/nng_aio_result/3.md), [nng\_aio(5)](/nng_aio/5.md), [nng(7)](/nng/7.md)
