タグ

ブックマーク / golb.hatenadiary.jp (1)

  • Windowsの非同期I/Oと、OVERLAPPED構造体の寿命 - 技術ブログ読み日記

    The Old New Thingの「Ready... cancel... wait for it! (part 2)」を読んだ。 この記事の結論はこうだ。 I/O完了ルーチンを使う場合、OVERLAPPED構造体はI/O完了ルーチンの実行が終わるまで解放してはならない。一般的には、OVERLAPPED構造体をスタックではなくヒープに割り当て、I/O完了ルーチンの最後で破棄するようにする。 普通そうするだろ、という話は置いておいて。 part1の復習 なんでこんなことを問題にしているんだろう? と不思議に思ったが、この記事は以下のような少し特殊なケースを前提にしているように思う。 したいことは、タイムアウトつきのブロッキングI/Oを行う関数を作ること。 タイムアウトしたときのキャンセルを可能にするために、非同期I/Oを使う。 関数は、I/Oが成功、失敗、タイムアウトのいずれかで抜ける。I/

    Windowsの非同期I/Oと、OVERLAPPED構造体の寿命 - 技術ブログ読み日記
  • 1