aio_suspend(3)aio_suspend(3)NAMEaio_suspend - Suspends the calling process until at least one of the
specified asynchronous I/O requests has completed, until a signal
interrupts the function, or until a timeout interval, if specified, has
int aio_suspend ( const struct aiocb *list, int nent, const struct
Asynchronous I/O Library (libaio, libaio_raw)
An array of pointers to asynchronous I/O control blocks. The number of
elements in the array. This number specifies the number of asynchronous
I/O operations. A pointer to a timespec structure. If timeout is NULL,
the argument is ignored.
The aio_suspend function suspends the calling process until at least
one asynchronous I/O operation has completed, until a signal interrupts
the function, or until a timeout interval, if specified, has passed.
At the time of the call, if an asynchronous I/O operation specified in
the aiocbp array corresponds to completed asynchronous I/O operations,
the function returns without suspending the calling process.
The list argument is an array of pointers to aiocb data structures. The
nent argument indicates the number of elements in the array. Each
aiocbp structure must have been used in initiating an asynchronous I/O
request by a call to the aio_read, aio_write, or lio_listio functions.
If the aio_suspend function returns due to an asynchronous I/O comple‐
tion, a value of 0 (zero) is returned. The application may determine
which asynchronous I/O operations finished by calling the aio_error and
On an unsuccessful call, a value of -1 is returned and errno is set to
indicate that an error occurred.
The aio_suspend function fails under the following conditions: No asyn‐
chronous I/O operation indicated in the list referenced by list com‐
pleted in the time interval indicated by timeout. A signal interrupted
the aio_suspend function. Note that, because each asynchronous I/O
operation may invoke a signal when it completes, this error return may
be caused by the completion of one or more of the I/O operations being
awaited. An invalid time value was specified in timeout, or nent is
greater than the maximum number of list elements allowed, AIO_LIS‐
Functions: aio_group_completion_np(3), aio_read(3), aio_results_np(3),
Guide to Realtime Programming