Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ aio_suspend(3aio) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

aiocb(5)

aio_cancel(3aio)

aio_error(3aio)

aio_read(3aio)

aio_return(3aio)

aio_write(3aio)






       aio_suspend(3aio)                                  aio_suspend(3aio)


       NAME
             aio_suspend - suspend until asynchronous I/O completes

       SYNOPSIS
             cc [options] -D_REENTRANT file -lthread
             #include <aio.h>
             int aio_suspend(const struct aiocb *list, int nent,
                   const struct timespec *timeout);

       DESCRIPTION
             aio_suspend suspends the calling thread until at least one of
             the selected I/O requests completes or a timeout occurs.
             aio_suspend suspends 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 (i.e., the error status for the operation is
             not equal to EINPROGRESS), at the time of the call, the
             function returns without suspending the calling process.  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 is
             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 which 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, aio_suspend returns with an
             error.

          Return Values
             If the aio_suspend function returns after one or more
             asynchronous I/O operations have completed, the function
             returns zero.  Otherwise, the function returns a value of -1
             and sets errno to indicate the error.

             The application determines which asynchronous I/O completed by
             scanning the associated error and return status, using
             aio_error and aio_return, respectively.




                           Copyright 1994 Novell, Inc.               Page 1













      aio_suspend(3aio)                                  aio_suspend(3aio)


         Errors
            If any of the following conditions occur, the aio_suspend
            function returns -1 and sets errno to the corresponding value:

            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 I/O operations being awaited.

            ENOSYS           The aio_suspend function is not supported by
                             this implementation.  This error is returned
                             under the SVR4.2 implementation.

      NOTICES
            In general, users should not mix notification via callback
            (for example, by requesting callback in the aiocb) with the
            use of aio_suspend.  If they are mixed, the aio_suspend call
            will always return an error with errno set to EINTR.

      REFERENCES
            aiocb(5), aio_cancel(3aio), aio_error(3aio), aio_read(3aio),
            aio_return(3aio), aio_write(3aio)




















                          Copyright 1994 Novell, Inc.               Page 2








Typewritten Software • bear@typewritten.org • Edmonds, WA 98026