著作一覧 |
readlineのバグ(コンソール出力の問題かも知れないけど)をまだ見ていないので作る気はなかったのだけど(irbが使い物にならない)、ソケットの問題がどうにもならないので、パッケージを作りました。
今回からは、リファレンスマニュアルにDiceさんがCCで公開してくださっているRubyリファレンスマニュアル chm版リミックスを同梱するようにしました。どうもありがとうございます。一番サイズが小さい標準版を入れています。
なお、上で書いているソケットの問題というのは、子プロセスにソケットが引き継がれることです。どうもMSDNを読むと、親子の会話に便利だろうというような思い付きでデフォルトを子プロセス引き継ぎにしたようなのですが、ついWinddows7sp1までは抑制する方法がなかった(プロセス作成時にハンドルすべてを引き継がないように設定することは可能だけど、それは極端過ぎる)ため、Rubyでは特に何もしていなかったために発生します。
これ、なぜ大問題にならないのかすごく不思議なのだけど、
・サーバで実行する場合はMongrelなり、Ennou(おれだな)なりを使ってrubyのTCPServerを使うことはあまりない
・普通のWebアプリケーションで、プロセスを起動してそれが長期間実行される子プロセスを実行するというようなパターンがない
といったところでしょう。
これが最悪なのは、デバッグしていてスクリプトを終了、再起動してもEADDRINUSEでエラーになるわけではなく、どうもポートを食われているのではないかと気づいてnetstat /bで掴んでいるプロセスを特定しようとしてもシステムという意味ない表示しかされないことです。
というわけで、usaさんにパッチを作っていただいたので、適用しています。ありがとうございます。助かります。
Ruby MSIパッケージからダウンロードしてください。
ジェズイットを見習え |