---
name: "aio_suspend"
section: "2"
platform: "linux"
package: "freebsd-manpages"
version: "6.0-5"
release: "Debian 4.0 (Etch)"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/aio_suspend"
---

# aio\_suspend(2)

suspend until asynchronous I/O operations or timeout complete (REALTIME)

## NAME

**aio\_suspend** – suspend until asynchronous I/O operations or timeout complete (REALTIME)

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

**#include \<aio.h\>**

*int*\

**aio\_suspend**(*const struct aiocb \* const iocbs\[\]*, *int niocb*, *const struct timespec \* timeout*);

## DESCRIPTION

The **aio\_suspend**() system call suspends the calling process until at least one of the specified asynchronous I/O requests have completed, a signal is delivered, or the *timeout* has passed.

The *iocbs* argument is an array of *niocb* pointers to asynchronous I/O requests. Array members containing null pointers will be silently ignored.

If *timeout* is not a null pointer, it specifies a maximum interval to suspend. If *timeout* is a null pointer, the suspend blocks indefinitely. To effect a poll, the *timeout* should point to a zero-value timespec structure.

## RETURN VALUES

If one or more of the specified asynchronous I/O requests have completed, **aio\_suspend**() returns 0. Otherwise it returns -1 and sets *errno* to indicate the error, as enumerated below.

## ERRORS

The **aio\_suspend**() system call will fail if:

- \[EAGAIN\]

  the *timeout* expired before any I/O requests completed.

- \[EINVAL\]

  The *iocbs* argument contains more than AIO\_LISTIO\_MAX asynchronous I/O requests, or at least one of the requests is not valid.

- \[EINTR\]

  the suspend was interrupted by a signal.

## SEE ALSO

[aio\_cancel(2)](/aio_cancel/2.md), [aio\_error(2)](/aio_error/2.md), [aio\_return(2)](/aio_return/2.md), [aio\_waitcomplete(2)](/aio_waitcomplete/2.md), [aio\_write(2)](/aio_write/2.md), [aio(4)](/aio/4.md)

## STANDARDS

The **aio\_suspend**() system call is expected to conform to the IEEE Std 1003.1 (“POSIX.1”) standard.

## HISTORY

The **aio\_suspend**() system call first appeared in FreeBSD 3.0.

## AUTHORS

This manual page was written by Wes Peters ⟨wes@softweyr.com⟩.
