aiowait(3)
NAME
aiowait − wait for completion of asynchronous I/O operation
SYNOPSIS
cc [ flag ... ] file ... −laio [ library ... ]
#include <sys/asynch.h>
#include <sys/time.h>
aio_result_t ∗aiowait(const struct timeval ∗timeout);
MT-LEVEL
Unsafe
DESCRIPTION
aiowait() suspends the calling process until one of its outstanding asynchronous I/O operations completes. This provides a synchronous method of notification.
If timeout is a non-zero pointer, it specifies a maximum interval to wait for the completion of an asynchronous I/O operation. If timeout is a zero pointer, then aiowait() blocks indefinitely. To effect a poll, the timeout parameter should be non-zero, pointing to a zero-valued timeval structure.
The timeval structure is defined in <sys/time.h> and contains the following members:
long tv_sec;/∗ seconds ∗/
long tv_usec;/∗ and microseconds ∗/
NOTES
aiowait() is the only way to dequeue an asynchronous notification. It may be used either inside a SIGIO signal handler or in the main program. One SIGIO signal may represent several queued events.
RETURN VALUES
On success, aiowait() returns a pointer to the result structure used when the completed asynchronous I/O operation was requested. On failure, it returns −1 and sets errno to indicate the error. aiowait() returns 0 if the time limit expires.
ERRORS
EFAULT timeout points to an address outside the address space of the requesting process. See NOTES below.
EINTR A signal was delivered before an asynchronous I/O operation completed.
The time limit expired.
EINVAL There are no outstanding asynchronous I/O requests.
SEE ALSO
NOTES
Passing an illegal address as timeout will result in setting errno to EFAULT only if it is detected by the application process.
SunOS 5.2 — Last change: 03 Mar 1993