FreeBSD manual
download PDF document: aio_waitcomplete.2.pdf
AIO_WAITCOMPLETE(2) FreeBSD System Calls Manual AIO_WAITCOMPLETE(2)
NAME
aio_waitcomplete - wait for the next completion of an aio request
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <aio.h>
ssize_t
aio_waitcomplete(struct aiocb **iocbp, struct timespec *timeout);
DESCRIPTION
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.
RETURN VALUES
If an asynchronous I/O request has completed, iocbp is set to point to
the control block passed with the original request, and the status is
returned as described in read(2), write(2), or fsync(2). On failure,
aio_waitcomplete() returns -1, sets iocbp to NULL and sets errno to
indicate the error condition.
ERRORS
The aio_waitcomplete() system call fails if:
[EINVAL] The specified time limit is invalid.
[EAGAIN] The process has not yet called aio_read() or
aio_write().
[EINTR] A signal was delivered before the timeout expired and
before any asynchronous I/O requests completed.
[EWOULDBLOCK]
[EINPROGRESS] The specified time limit expired before any
asynchronous I/O requests completed.
SEE ALSO
aio_cancel(2), aio_error(2), aio_read(2), aio_return(2), aio_suspend(2),
aio_write(2), fsync(2), read(2), write(2), aio(4)
The aio_waitcomplete() system call and this manual page were written by
Christopher M Sedore <cmsedore@maxwell.syr.edu>.
FreeBSD 14.2-RELEASE March 21, 2016 FreeBSD 14.2-RELEASE