aio_suspend(3aio) aio_suspend(3aio)
NAME
aio_suspend - suspend until asynchronous I/O completes
SYNOPSIS
cc [options] -D_REENTRANT file -lthread
#include <aio.h>
int aio_suspend(const struct aiocb *list, int nent,
const struct timespec *timeout);
DESCRIPTION
aio_suspend suspends the calling thread until at least one of
the selected I/O requests completes or a timeout occurs.
aio_suspend suspends 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 (i.e., the error status for the operation is
not equal to EINPROGRESS), at the time of the call, the
function returns without suspending the calling process. 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 is
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 which 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, aio_suspend returns with an
error.
Return Values
If the aio_suspend function returns after one or more
asynchronous I/O operations have completed, the function
returns zero. Otherwise, the function returns a value of -1
and sets errno to indicate the error.
The application determines which asynchronous I/O completed by
scanning the associated error and return status, using
aio_error and aio_return, respectively.
Copyright 1994 Novell, Inc. Page 1
aio_suspend(3aio) aio_suspend(3aio)
Errors
If any of the following conditions occur, the aio_suspend
function returns -1 and sets errno to the corresponding value:
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 I/O operations being awaited.
ENOSYS The aio_suspend function is not supported by
this implementation. This error is returned
under the SVR4.2 implementation.
NOTICES
In general, users should not mix notification via callback
(for example, by requesting callback in the aiocb) with the
use of aio_suspend. If they are mixed, the aio_suspend call
will always return an error with errno set to EINTR.
REFERENCES
aiocb(5), aio_cancel(3aio), aio_error(3aio), aio_read(3aio),
aio_return(3aio), aio_write(3aio)
Copyright 1994 Novell, Inc. Page 2