Originální popis anglicky:
aio_suspend - wait for an asynchronous I/O request (
REALTIME)
Návod, kniha: POSIX Programmer's Manual
#include <aio.h>
int aio_suspend(const struct aiocb * const
list[],
int nent,
const struct timespec *
timeout);
The
aio_suspend() function shall suspend the calling thread until at
least one of the asynchronous I/O operations referenced by the
list
argument has completed, until a signal interrupts the function, or, if
timeout is not NULL, until the time interval specified by
timeout has passed. If any of the
aiocb structures in the list
correspond to completed asynchronous I/O operations (that is, the error status
for the operation is not equal to [EINPROGRESS]) at the time of the call, the
function shall return without suspending the calling thread. The
list
argument is an array of pointers to asynchronous I/O control blocks. The
nent argument indicates the number of elements in the array. Each
aiocb structure pointed to has been used in initiating an asynchronous
I/O request via
aio_read(),
aio_write(), or
lio_listio().
This array may contain NULL pointers, which are ignored. If this array
contains pointers that refer to
aiocb structures that have not been
used in submitting asynchronous I/O, the effect is undefined.
If the time interval indicated in the
timespec structure pointed to by
timeout passes before any of the I/O operations referenced by
list are completed, then
aio_suspend() shall return with an
error. If the Monotonic Clock option is supported, the clock that
shall be used to measure this time interval shall be the CLOCK_MONOTONIC
clock.
If the
aio_suspend() function returns after one or more asynchronous I/O
operations have completed, the function shall return zero. Otherwise, the
function shall return a value of -1 and set
errno to indicate the
error.
The application may determine which asynchronous I/O completed by scanning the
associated error and return status using
aio_error() and
aio_return(), respectively.
The
aio_suspend() function shall fail if:
- EAGAIN
- No asynchronous I/O indicated in the list referenced by
list completed in the time interval indicated by
timeout.
- EINTR
- A signal interrupted the aio_suspend() function.
Note that, since each asynchronous I/O operation may possibly provoke a
signal when it completes, this error return may be caused by the
completion of one (or more) of the very I/O operations being awaited.
The following sections are informative.
None.
The
aio_suspend() function is part of the Asynchronous Input and Output
option and need not be available on all implementations.
None.
None.
aio_read() ,
aio_write() ,
lio_listio() , the Base
Definitions volume of IEEE Std 1003.1-2001,
<aio.h>
Portions of this text are reprinted and reproduced in electronic form from IEEE
Std 1003.1, 2003 Edition, Standard for Information Technology -- Portable
Operating System Interface (POSIX), The Open Group Base Specifications Issue
6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics
Engineers, Inc and The Open Group. In the event of any discrepancy between
this version and the original IEEE and The Open Group Standard, the original
IEEE and The Open Group Standard is the referee document. The original
Standard can be obtained online at http://www.opengroup.org/unix/online.html
.