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.
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.
The aio_suspend system call will fail if: