]> git.ipfire.org Git - thirdparty/man-pages.git/blame - man3/aio_suspend.3
getent.1, _syscall.2, acct.2, adjtimex.2, bdflush.2, brk.2, cacheflush.2, getsid...
[thirdparty/man-pages.git] / man3 / aio_suspend.3
CommitLineData
fea681da 1.\" Copyright (c) 2003 Andries Brouwer (aeb@cwi.nl)
0cae8d0c 2.\" and Copyright (C) 2010 Michael kerrisk <mtk.manpages@gmail.com>
fea681da 3.\"
6a8d8745 4.\" %%%LICENSE_START(GPLv2+_doc_full)
fea681da
MK
5.\" This is free documentation; you can redistribute it and/or
6.\" modify it under the terms of the GNU General Public License as
7.\" published by the Free Software Foundation; either version 2 of
8.\" the License, or (at your option) any later version.
9.\"
10.\" The GNU General Public License's references to "object code"
11.\" and "executables" are to be interpreted as the output of any
12.\" document formatting or typesetting system, including
13.\" intermediate and printed output.
14.\"
15.\" This manual is distributed in the hope that it will be useful,
16.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
17.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18.\" GNU General Public License for more details.
19.\"
20.\" You should have received a copy of the GNU General Public
c715f741
MK
21.\" License along with this manual; if not, see
22.\" <http://www.gnu.org/licenses/>.
6a8d8745 23.\" %%%LICENSE_END
fea681da 24.\"
aea038d6 25.TH AIO_SUSPEND 3 2012-05-08 "" "Linux Programmer's Manual"
fea681da
MK
26.SH NAME
27aio_suspend \- wait for asynchronous I/O operation or timeout
28.SH SYNOPSIS
29.nf
30.sp
31.B "#include <aio.h>"
32.sp
0cae8d0c 33.BI "int aio_suspend(const struct aiocb * const " aiocb_list [],
fea681da 34.br
0cae8d0c 35.BI " int " nitems ", const struct timespec *" timeout );
8d3d329b
MK
36.sp
37Link with \fI\-lrt\fP.
fea681da
MK
38.fi
39.SH DESCRIPTION
40The
e511ffb6 41.BR aio_suspend ()
0cae8d0c
MK
42function suspends the calling thread until one of the following occurs:
43.IP * 3
44One or more of the asynchronous I/O requests in the list
45.I aiocb_list
46has completed.
47.IP *
48A signal is delivered.
49.IP *
fea681da 50.I timeout
0cae8d0c
MK
51is not NULL and the specified time interval has passed.
52(For details of the
53.I timespec
54structure, see
55.BR nanosleep (2).)
fea681da 56.LP
0cae8d0c
MK
57The
58.I nitems
59argument specifies the number of items in
60.IR aiocb_list .
61Each item in the list pointed to by
62.I aiocb_list
63must be either NULL (and then is ignored),
fea681da
MK
64or a pointer to a control block on which I/O was initiated using
65.BR aio_read (3),
66.BR aio_write (3),
67or
68.BR lio_listio (3).
0cae8d0c
MK
69(See
70.BR aio (7)
71for a description of the
72.I aiocb
73structure.)
fea681da 74.LP
2f0af33b
MK
75If
76.B CLOCK_MONOTONIC
77is supported, this clock is used to measure
0cae8d0c
MK
78the timeout interval (see
79.BR clock_gettime (3)).
47297adb 80.SH RETURN VALUE
0cae8d0c
MK
81If this function returns after completion of one of the I/O
82requests specified in
83.IR aiocb_list ,
840 is returned.
85Otherwise, \-1 is returned, and
fea681da 86.I errno
0cae8d0c 87is set to indicate the error.
fea681da
MK
88.SH ERRORS
89.TP
90.B EAGAIN
0cae8d0c 91The call timed out before any of the indicated operations
fea681da
MK
92had completed.
93.TP
94.B EINTR
0cae8d0c
MK
95The call was ended by signal
96(possibly the completion signal of one of the operations we were
97waiting for); see
76e533c4 98.BR signal (7).
aea038d6
MK
99.TP
100.B ENOSYS
02ace852 101.BR aio_suspend ()
aea038d6 102is not implemented.
793514ae
MK
103.SH VERSIONS
104The
105.BR aio_suspend ()
106function is available since glibc 2.1.
47297adb 107.SH CONFORMING TO
793514ae 108POSIX.1-2001, POSIX.1-2008.
19c98696 109.SH NOTES
fea681da
MK
110One can achieve polling by using a non-NULL
111.I timeout
112that specifies a zero time interval.
0cae8d0c
MK
113
114If one or more of the asynchronous I/O operations specified in
115.IR aiocb_list
116has already completed at the time of the call to
117.BR aio_suspend (),
118then the call returns immediately.
119
120To determine which I/O operations have completed
121after a successful return from
122.BR aio_suspend (),
123use
124.BR aio_error (3)
125to scan the list of
126.I aiocb
127structures pointed to by
128.IR aiocb_list .
47297adb 129.SH SEE ALSO
fea681da
MK
130.BR aio_cancel (3),
131.BR aio_error (3),
132.BR aio_fsync (3),
133.BR aio_read (3),
134.BR aio_return (3),
1d7c4d16 135.BR aio_write (3),
cd587df6 136.BR lio_listio (3),
25fa6c3d 137.BR aio (7),
1d7c4d16 138.BR time (7)