Man Linux: Main Page and Category List

NAME

       aio_suspend - wait for an asynchronous I/O request (REALTIME)

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

       The aio_suspend() function is part of the Asynchronous Input and Output
       option and need not be available on all implementations.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       aio_read() , aio_write() , lio_listio() , the Base  Definitions  volume
       of IEEE Std 1003.1-2001, <aio.h>

COPYRIGHT

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