aio_suspend(3p) - phpMan

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

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 (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  com-
       pleted  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 sub-
       mitting 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 Mono-
       tonic  Clock  option is supported, the clock that shall be used to mea-
       sure 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. Other-
       wise, 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 scan-
       ning 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 .

IEEE/The Open Group                  2003                      AIO_SUSPEND(3P)