The
aio_waitcomplete()
system call waits for completion of an asynchronous I/O request.
Upon completion,
aio_waitcomplete()
returns the result of the function and sets
iocbp
to point to the structure associated with the original request.
If an asynchronous I/O request is completed before
aio_waitcomplete()
is called, it returns immediately with the completed request.
If
timeout
is a non-NULL pointer, it specifies a maximum interval to wait for a
asynchronous I/O request to complete.
If
timeout
is a NULL pointer,
aio_waitcomplete()
waits indefinitely.
To effect a poll, the
timeout
argument should be non-NULL, pointing to a zero-valued timeval structure.
The
aio_waitcomplete()
system call also serves the function of
aio_return(),
thus
aio_return()
should not be called for the control block returned in
iocbp.