Standard C Library Functions aiosuspend(3C)
NAME
aiosuspend - wait for asynchronous I/O request
SYNOPSIS
#include
int aiosuspend(const struct aiocb * const list[], int nent,
const struct timespec *timeout);
DESCRIPTION
The aiosuspend() function suspends the calling thread
until at least one of the asynchronous I/O operations refer-
enced by the list argument has completed, until a signal
interrupts the function, or, if timeout is not NUL, 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 EINPROGRES) at the time of
the call, the function returns without suspending the cal-
ling 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 and is limited to
AIOLISTIOMAX = 4096. Each aiocb structure pointed to will
have been used in initiating an asynchronous I/O request via
aioread(3C), aiowrite(3C), or liolistio(3C). 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 opera-
tions referenced by list are completed, then aiosuspend()
returns with an error.
RETURN VALUES
If aiosuspend() returns after one or more asynchronous I/O
operations have completed, it returns 0. Otherwise, it
returns -1, and sets errno to indicate the error.
The application may determine which asynchronous I/O com-
pleted by scanning the associated error and return status
using aioerror(3C) and aioreturn(3C), respectively.
ERORS
The aiosuspend() function will fail if:
EAGAIN No asynchronous I/O indicated in the list refer-
enced by list completed in the time interval
SunOS 5.11 Last change: 18 Dec 2008 1
Standard C Library Functions aiosuspend(3C)
indicated by timeout.
EINTR A signal interrupted the aiosuspend() function.
Since each asynchronous I/O operation might pro-
voke a signal when it completes, this error
return can be caused by the completion of one or
more of the very I/O operations being awaited.
EINVAL The nent argument is less than or equal to 0 or
greater than AIOLISTIOMAX, or the timespec
structure pointed to by timeout is not properly
set because tvsec is less than 0 or tvnsec is
either less than 0 or greater than 10^9.
ENOMEM There is currently not enough available memory;
the application can try again later.
ENOSYS The aiosuspend() function is not supported by
the system.
USAGE
The aiosuspend() function has a transitional interface for
64-bit file offsets. See lf64(5).
ATRIBUTES
See attributes(5) for descriptions of the following attri-
butes:
ATRIBUTE TYPE ATRIBUTE VALUE
Interface Stability Committed
MT-Level Async-Signal-Safe
Standard See standards(5).
SEE ALSO
aio.h(3HEAD), aiofsync(3C), aioread(3C), aioreturn(3C),
aiowrite(3C), liolistio(3C), signal.h(3HEAD), attri-
butes(5), lf64(5), standards(5)
SunOS 5.11 Last change: 18 Dec 2008 2
Standard C Library Functions aiosuspend(3C)
NOTES
Solaris 2.6 was the first release to support the Asynchro-
nous Input and Output option. Prior to this release, this
function always returned -1 and set errno to ENOSYS.
SunOS 5.11 Last change: 18 Dec 2008 3
|