ファイル I/O にLinux aio ( io_submit()
/ ) を使用しています。io_getevents()
一部の操作には同等の aio ( open()
、fsync()
、fallocate()
) がないため、メイン スレッドに影響を与えずにブロックできるワーカー スレッドを使用します。私の質問は、close()
このリストに追加する必要がありますか?
すべてのファイルはO_DIRECT
XFS で開かれますが、質問に対する一般的な回答と、ファイルシステムとオープンモードの選択に関する特定の回答の両方に興味があります。
close()
ワーカー スレッドはクリーンアップ パスで呼び出されることが多いため、ワーカー スレッドの使用は簡単ではないことに注意してくださいclose()
。クリーンアップ パスは、ワーカー スレッド リクエストを起動して待機するのに適した場所ではありません。close()
したがって、このシナリオではそれが非ブロッキングであることを願っています。
この質問では、「ブロッキング」とは、I/O 操作、または I/O 操作が完了したときにのみ解放される可能性のあるロックを待機することを意味しますが、ページ フォールト サービスは除きます。