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⟩.