PROLOG | NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | EXAMPLES | APPLICATION USAGE | RATIONALE | FUTURE DIRECTIONS | SEE ALSO | COPYRIGHT

AIO_SUSPEND(3P)           POSIX Programmer's Manual          AIO_SUSPEND(3P)

PROLOG         top

       This manual page is part of the POSIX Programmer's Manual.  The Linux
       implementation of this interface may differ (consult the
       corresponding Linux manual page for details of Linux behavior), or
       the interface may not be implemented on Linux.

NAME         top

       aio_suspend — wait for an asynchronous I/O request

SYNOPSIS         top

       #include <aio.h>

       int aio_suspend(const struct aiocb *const list[], int nent,
           const struct timespec *timeout);

DESCRIPTION         top

       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.

RETURN VALUE         top

       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.

ERRORS         top

       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.

EXAMPLES         top

       None.

APPLICATION USAGE         top

       None.

RATIONALE         top

       None.

FUTURE DIRECTIONS         top

       None.

SEE ALSO         top

       aio_read(3p), aio_write(3p), lio_listio(3p)

       The Base Definitions volume of POSIX.1‐2008, aio.h(0p)

COPYRIGHT         top

       Portions of this text are reprinted and reproduced in electronic form
       from IEEE Std 1003.1, 2013 Edition, Standard for Information
       Technology -- Portable Operating System Interface (POSIX), The Open
       Group Base Specifications Issue 7, Copyright (C) 2013 by the
       Institute of Electrical and Electronics Engineers, Inc and The Open
       Group.  (This is POSIX.1-2008 with the 2013 Technical Corrigendum 1
       applied.) 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.unix.org/online.html .

       Any typographical or formatting errors that appear in this page are
       most likely to have been introduced during the conversion of the
       source files to man page format. To report such errors, see
       https://www.kernel.org/doc/man-pages/reporting_bugs.html .

IEEE/The Open Group                 2013                     AIO_SUSPEND(3P)