NAME
aiosuspend - wait for asynchronous I/O operation or timeout SYNOPSIS
#include
int aiosuspend(const struct aiocb * const aiocblist[], int nitems, const struct timespec *timeout); Link with -lrt. DESCRIPTION The aiosuspend() function suspends the calling thread until one of the following occurs: * One or more of the asynchronous I/O requests in the list aiocblist has completed. * A signal is delivered. * timeout is not NULL and the specified time interval has passed. (For details of the timespec structure, see nanosleep(2).) The nitems argument specifies the number of items in aiocblist. Each item in the list pointed to by aiocblist must be either NULL (and then is ignored), or a pointer to a control block on which I/O was initiated using aioread(3), aiowrite(3), or liolistio(3). (See aio(7) for a description of the aiocb structure.) If CLOCKMONOTONIC is supported, this clock is used to measure the timeout interval (see clockgettime(3)). RETURN VALUE If this function returns after completion of one of the I/O requests
specified in aiocblist, 0 is returned. Otherwise, -1 is returned, and errno is set to indicate the error. ERRORS EAGAIN The call timed out before any of the indicated operations had completed. EINTR The call was ended by signal (possibly the completion signal of one of the operations we were waiting for); see signal(7). ENOSYS aiosuspend() is not implemented. VERSIONS The aiosuspend() function is available since glibc 2.1. ATTRIBUTES For an explanation of the terms used in this section, see attributes(7). ┌──────────────┬───────────────┬─────────┐ │Interface │ Attribute │ Value │ ├──────────────┼───────────────┼─────────┤
│aiosuspend() │ Thread safety │ MT-Safe │ └──────────────┴───────────────┴─────────┘ CONFORMING TO
POSIX.1-2001, POSIX.1-2008. NOTES
One can achieve polling by using a non-NULL timeout that specifies a zero time interval. If one or more of the asynchronous I/O operations specified in aiocblist has already completed at the time of the call to aiosus‐ pend(), then the call returns immediately. To determine which I/O operations have completed after a successful return from aiosuspend(), use aioerror(3) to scan the list of aiocb structures pointed to by aiocblist. SEE ALSO aiocancel(3), aioerror(3), aiofsync(3), aioread(3), aioreturn(3), aiowrite(3), liolistio(3), aio(7), time(7) COLOPHON
This page is part of release 3.53 of the Linux man-pages project. A description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
2012-05-08 AIOSUSPEND(3)