table of contents
| AIO_WAITCOMPLETE(2) | 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() oraio_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>.
| March 21, 2016 | Debian |