# aio_suspend

Suspends the calling process until one of the asynchronous I/O operations completes.

## Syntax

int aio_suspend(const struct aiocb * const cblist[], int n, const struct timespec *timeout);

## Arguments

cblist[] | Pointer to a control block on which I/O is initiated
n | Length of cblist list
*timeout | Time interval to suspend the calling process

## Description

The aio_suspend() function is like a wait operation. It suspends the calling process until,

- At least one of the asynchronous I/O requests in the list cblist of length n has completed
- A signal is delivered
- The time interval indicated in timeout is not `NULL` and has passed.

Each item in the cblist list must either be `NULL` (when it is ignored), or a pointer to a control block on which I/O was initiated using aio_read(), aio_write(), or lio_listio() functions.

## Returns

0: On success

-1: On error

To get the correct error code, use errno.

Parent topic: Intel's C++ Asynchronous I/O Library for Windows

## See Also

Example Code for aio_suspend()