AIO_INIT(3) Linux Programmer's Manual AIO_INIT(3)
名
aio_init - 非同期 I/O の初期化
書
#define _GNU_SOURCE /* See feature_test_macros(7) */
#include <aio.h>
void aio_init(const struct aioinit *init);
-lrt でリンクする。
説
GNU 固有の aio_init() 関数を使うと、呼び出し側が glibc の POSIX AIO 実装に 対して調整
(チューニング) のヒントを与えることができる。この関数は使用しなく
てもよいが、この関数が効果を持つには、POSIX AIO API の他の関数を利用する前に
呼び出さなければならない。
チューニングの情報は、引き数 init が指すバッファーで与える。
このバッファーは以下の形式の構造体である。
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;
};
aioinit 構造体のフィールドのうち以下が使用される。
aio_threads このフィールドは、AIO
の実装が使用できるワーカースレッド数の最大値を指定する。 完了していない I/O
操作の数がこの上限を超えた場合、超過した操作は
空いたワーカースレッドができるまでキューに入る。 このフィールドに 1
未満の値を指定した場合には、値 1 が使用される。 デフォルト値は 20 である。
aio_num このフィールドは、呼び出し側がキューに入れる予定の 同時 I/O
リクエスト数の最大値を指定する。 このフィールドに 32
未満の値が指定された場合、値は 32 に切り上げられる。 デフォルト値は 64
である。
aio_idle_time このフィールドは、あるワーカースレッドが、前のリクエストの処理を完了してから、
次のリクエストをどのくらい時間待つかを秒単位で指定する。
指定した時間を経過しても次のリクエストがなければ、
そのワーカースレッドは終了される。デフォルト値は 1 秒である。
バ
The aio_init() 関数は glibc 2.1 以降で利用できる。
こ
この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部
である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/
に書かれている。
Linux 2012-04-26 AIO_INIT(3)