# aio_suspend

## PROLOG



           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



           aio_suspend — wait for an asynchronous I/O request
    


## SYNOPSIS



           #include <aio.h>
    
           int aio_suspend(const struct aiocb *const _list_[], int _nent_ ,
               const struct timespec *_timeout_);
    


## DESCRIPTION



           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



           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



           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



           None.
    


## APPLICATION USAGE



           None.
    


## RATIONALE



           None.
    


## FUTURE DIRECTIONS



           None.
    


* * *