summaryrefslogtreecommitdiffstats
path: root/man/man3/aio_init.3
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-24 04:52:22 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-24 04:52:22 +0000
commit3d08cd331c1adcf0d917392f7e527b3f00511748 (patch)
tree312f0d1e1632f48862f044b8bb87e602dcffb5f9 /man/man3/aio_init.3
parentAdding debian version 6.7-2. (diff)
downloadmanpages-3d08cd331c1adcf0d917392f7e527b3f00511748.tar.xz
manpages-3d08cd331c1adcf0d917392f7e527b3f00511748.zip
Merging upstream version 6.8.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'man/man3/aio_init.3')
-rw-r--r--man/man3/aio_init.378
1 files changed, 78 insertions, 0 deletions
diff --git a/man/man3/aio_init.3 b/man/man3/aio_init.3
new file mode 100644
index 0000000..67a58cf
--- /dev/null
+++ b/man/man3/aio_init.3
@@ -0,0 +1,78 @@
+.\" Copyright (c) 2010 by Michael Kerrisk <mtk.manpages@gmail.com>
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.TH aio_init 3 2024-05-02 "Linux man-pages (unreleased)"
+.SH NAME
+aio_init \- asynchronous I/O initialization
+.SH LIBRARY
+Real-time library
+.RI ( librt ", " \-lrt )
+.SH SYNOPSIS
+.nf
+.BR "#define _GNU_SOURCE" " /* See feature_test_macros(7) */"
+.B "#include <aio.h>"
+.P
+.BI "void aio_init(const struct aioinit *" init );
+.fi
+.SH DESCRIPTION
+The GNU-specific
+.BR aio_init ()
+function allows the caller to provide tuning hints to the
+glibc POSIX AIO implementation.
+Use of this function is optional, but to be effective,
+it must be called before employing any other functions in the POSIX AIO API.
+.P
+The tuning information is provided in the buffer pointed to by the argument
+.IR init .
+This buffer is a structure of the following form:
+.P
+.in +4n
+.EX
+struct aioinit {
+ int aio_threads; /* Maximum number of threads */
+ int aio_num; /* Number of expected simultaneous
+ requests */
+ int aio_locks; /* Not used */
+ int aio_usedba; /* Not used */
+ int aio_debug; /* Not used */
+ int aio_numusers; /* Not used */
+ int aio_idle_time; /* Number of seconds before idle thread
+ terminates (since glibc 2.2) */
+ int aio_reserved;
+};
+.EE
+.in
+.P
+The following fields are used in the
+.I aioinit
+structure:
+.TP
+.I aio_threads
+This field specifies the maximum number of worker threads that
+may be used by the implementation.
+If the number of outstanding I/O operations exceeds this limit,
+then excess operations will be queued until a worker thread becomes free.
+If this field is specified with a value less than 1, the value 1 is used.
+The default value is 20.
+.TP
+.I aio_num
+This field should specify the maximum number of simultaneous I/O requests
+that the caller expects to enqueue.
+If a value less than 32 is specified for this field,
+it is rounded up to 32.
+.\" FIXME . But, if aio_num > 32, the behavior looks strange. See
+.\" http://sourceware.org/bugzilla/show_bug.cgi?id=12083
+The default value is 64.
+.TP
+.I aio_idle_time
+This field specifies the amount of time in seconds that a
+worker thread should wait for further requests before terminating,
+after having completed a previous request.
+The default value is 1.
+.SH STANDARDS
+GNU.
+.SH HISTORY
+glibc 2.1.
+.SH SEE ALSO
+.BR aio (7)