
エントリーの編集

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
これは何? ソケットにおけるノンブロッキングI/OについてPumaのコードを絡めて調べてみたまとめです。 ... これは何? ソケットにおけるノンブロッキングI/OについてPumaのコードを絡めて調べてみたまとめです。 PumaはRubyで書かれたOSSのWebサーバーです。 ソケットに限らずノンブロッキングI/Oという言葉をよく聞きます。ですがイマイチなにを意味しているのかわからなかったので調べてみました。 ブロッキングI/Oとは ユーザーモードからシステムコールをカーネルに発行し、結果が帰ってくるまでに待ちが発生するI/O処理のことです。ファイル全般に言えることであり、ソケットもファイルなので当然ブロッキング発生します。 ソケットにおけるブロッキングI/Oは以下のようなものがあります。 accept(2)でlistenキューからソケットを取り出すときに接続が確立されていない場合(TCPハンドシェイク中など)は確立されるまでブロックされる。 ソケットに対してread(2)やwrite(2)を実行する