私はカーネルレベルの非同期I/O(つまりlibaio.h
)を使用しています。struct iocb
usingを送信する前に、関数ポインタをに固定するio_submit
を使用してコールバックを設定しました。最後に、を使用して完了したイベントを取得し、各コールバックを実行します。io_set_callback
iocb->data
io_getevents
コールバック内でいくつかのコンテキスト情報(送信タイムスタンプなど)を使用できるようにしたいと思います。これを行うことを考えることができる唯一の方法は、を使用し続けることですio_getevents
がiocb->data
、コンテキストとコールバックを持つ構造体を指します。
このようなことをするための他の方法はありますか、そしてiocb->data
使用するときに手つかずであることが保証されていio_getevents
ますか?私の理解では、関数を指していないlibaio
場合に問題となるコールバックを自動的に実行する別の方法があります。iocb->data
ここでの説明があればいいのですが。のドキュメントはlibaio
本当に不足しているようです。