OSDN Git Service

LDP: Update original to LDP v3.79
[linuxjm/LDP_man-pages.git] / original / man3 / aio_suspend.3
index 988419b..2472172 100644 (file)
@@ -1,5 +1,7 @@
 .\" Copyright (c) 2003 Andries Brouwer (aeb@cwi.nl)
+.\" and Copyright (C) 2010 Michael kerrisk <mtk.manpages@gmail.com>
 .\"
+.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
 .\" This is free documentation; you can redistribute it and/or
 .\" modify it under the terms of the GNU General Public License as
 .\" published by the Free Software Foundation; either version 2 of
 .\" GNU General Public License for more details.
 .\"
 .\" You should have received a copy of the GNU General Public
-.\" License along with this manual; if not, write to the Free
-.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
-.\" USA.
+.\" License along with this manual; if not, see
+.\" <http://www.gnu.org/licenses/>.
+.\" %%%LICENSE_END
 .\"
-.TH AIO_SUSPEND 3 2003-11-14  "" "Linux Programmer's Manual"
+.TH AIO_SUSPEND 3 2012-05-08  "" "Linux Programmer's Manual"
 .SH NAME
 aio_suspend \- wait for asynchronous I/O operation or timeout
 .SH SYNOPSIS
@@ -28,63 +30,118 @@ aio_suspend \- wait for asynchronous I/O operation or timeout
 .sp
 .B "#include <aio.h>"
 .sp
-.BI "int aio_suspend(const struct aiocb * const " cblist [],
+.BI "int aio_suspend(const struct aiocb * const " aiocb_list [],
 .br
-.BI "                int " n ", const struct timespec *" timeout );
+.BI "                int " nitems ", const struct timespec *" timeout );
 .sp
 Link with \fI\-lrt\fP.
 .fi
 .SH DESCRIPTION
 The
 .BR aio_suspend ()
-function suspends the calling process until at least one of the
-asynchronous I/O requests in the list
-.I cblist
-of length
-.I n
-have completed, a signal is delivered, or
+function suspends the calling thread until one of the following occurs:
+.IP * 3
+One or more of the asynchronous I/O requests in the list
+.I aiocb_list
+has completed.
+.IP *
+A signal is delivered.
+.IP *
 .I timeout
-is not NULL and the time interval it indicates has passed.
+is not NULL and the specified time interval has passed.
+(For details of the
+.I timespec
+structure, see
+.BR nanosleep (2).)
 .LP
-Each item in the list must either be NULL (and then is ignored),
+The
+.I nitems
+argument specifies the number of items in
+.IR aiocb_list .
+Each item in the list pointed to by
+.I aiocb_list
+must be either NULL (and then is ignored),
 or a pointer to a control block on which I/O was initiated using
 .BR aio_read (3),
 .BR aio_write (3),
 or
 .BR lio_listio (3).
+(See
+.BR aio (7)
+for a description of the
+.I aiocb
+structure.)
 .LP
 If
 .B CLOCK_MONOTONIC
 is supported, this clock is used to measure
-the timeout interval.
-.SH "RETURN VALUE"
-If this function returns after completion of one of the indicated
-requests, it returns 0.
-Otherwise it returns \-1 and sets
+the timeout interval (see
+.BR clock_gettime (3)).
+.SH RETURN VALUE
+If this function returns after completion of one of the I/O
+requests specified in
+.IR aiocb_list ,
+0 is returned.
+Otherwise, \-1 is returned, and
 .I errno
-appropriately.
+is set to indicate the error.
 .SH ERRORS
 .TP
 .B EAGAIN
-The call was ended by timeout, before any of the indicated operations
+The call timed out before any of the indicated operations
 had completed.
 .TP
 .B EINTR
-The call was ended by signal; see
+The call was ended by signal
+(possibly the completion signal of one of the operations we were
+waiting for); see
 .BR signal (7).
-(Possibly the completion signal of one of the operations we were
-waiting for.)
-.SH "CONFORMING TO"
-POSIX.1-2001.
+.TP
+.B ENOSYS
+.BR aio_suspend ()
+is not implemented.
+.SH VERSIONS
+The
+.BR aio_suspend ()
+function is available since glibc 2.1.
+.SH CONFORMING TO
+POSIX.1-2001, POSIX.1-2008.
 .SH NOTES
 One can achieve polling by using a non-NULL
 .I timeout
 that specifies a zero time interval.
-.SH "SEE ALSO"
+
+If one or more of the asynchronous I/O operations specified in
+.IR aiocb_list
+has already completed at the time of the call to
+.BR aio_suspend (),
+then the call returns immediately.
+
+To determine which I/O operations have completed
+after a successful return from
+.BR aio_suspend (),
+use
+.BR aio_error (3)
+to scan the list of
+.I aiocb
+structures pointed to by
+.IR aiocb_list .
+.SH SEE ALSO
 .BR aio_cancel (3),
 .BR aio_error (3),
 .BR aio_fsync (3),
 .BR aio_read (3),
 .BR aio_return (3),
 .BR aio_write (3),
+.BR lio_listio (3),
+.BR aio (7),
 .BR time (7)
+.SH COLOPHON
+This page is part of release 3.79 of the Linux
+.I man-pages
+project.
+A description of the project,
+information about reporting bugs,
+and the latest version of this page,
+can be found at
+\%http://www.kernel.org/doc/man\-pages/.