When calling this function, the calling thread is suspended until at
least one of the requests pointed to by the nent elements of the
array list has completed. If any of the requests has already
completed at the time aio_suspend
is called, the function returns
immediately. Whether a request has terminated or not is determined by
comparing the error status of the request with EINPROGRESS
. If
an element of list is NULL
, the entry is simply ignored.
If no request has finished, the calling process is suspended. If
timeout is NULL
, the process is not woken until a request
has finished. If timeout is not NULL
, the process remains
suspended at least as long as specified in timeout. In this case,
aio_suspend
returns with an error.
The return value of the function is 0 if one or more requests
from the list have terminated. Otherwise the function returns
-1 and errno
is set to one of the following values:
EAGAIN
- None of the requests from the list completed in the time specified
by timeout.
EINTR
- A signal interrupted the
aio_suspend
function. This signal might
also be sent by the AIO implementation while signalling the termination
of one of the requests.
ENOSYS
- The
aio_suspend
function is not implemented.
When the sources are compiled with _FILE_OFFSET_BITS == 64
this
function is in fact aio_suspend64
since the LFS interface
transparently replaces the normal implementation.