Provided by: freebsd-manpages_9.2+1-1_all bug

NAME

     aio_waitcomplete — wait for the next completion of an aio request

LIBRARY

     Standard C Library (libc, -lc)

SYNOPSIS

     #include <aio.h>

     int
     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)

STANDARDS

     The aio_waitcomplete() system call is a FreeBSD-specific extension.

HISTORY

     The aio_waitcomplete() system call first appeared in FreeBSD 4.0.

AUTHORS

     The aio_waitcomplete() system call and this manual page were written by Christopher M Sedore
     <cmsedore@maxwell.syr.edu>.