---
name: "nng_aio_free"
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_free"
---

# nng\_aio\_free(3)

free asynchronous I/O handle

## NAME

nng\_aio\_free - free asynchronous I/O handle

## SYNOPSIS

```
#include <nng/nng.h>
void nng_aio_free(nng_aio *aio);
void nng_aio_reap(nng_aio *aio);
```

## DESCRIPTION

The `nng_aio_free()` function frees an allocated asynchronous I/O handle. If any operation is in progress, the operation is canceled, and the caller is blocked until the operation is completely canceled, to ensure that it is safe to deallocate the handle and any associated resources. (This is done by implicitly calling `nng_aio_stop()`.)

The `nng_aio_reap()` function is the same as `nng_aio_free()`, but does its work in a background thread. This can be useful to discard the *aio* object from within the callback for the *aio*.

**Important**\

Once either of these functions are called, the *aio* object is invalid and must not be used again.

## RETURN VALUES

None.

## ERRORS

None.

## SEE ALSO

[nng\_aio\_alloc(3)](/nng_aio_alloc/3.md), [nng\_aio\_stop(3)](/nng_aio_stop/3.md), [nng\_aio(5)](/nng_aio/5.md), [nng(7)](/nng/7.md)
