[ruby-list:49606] Re: IO.popen に不具合?

From: 尾川敏也 <ogw@...>
Date: 2013-09-26 12:00:33 UTC
List: ruby-list #49606
尾川です。

出沢さん、リプライありがとうございます。

> 「Open3.だと大丈夫なようだ」 との違いが説明できませんが

これが一番気持ち悪いのですが、我ながら「ようだ」と曖昧なことを言っ
ていては気持ち悪さが倍増ですね。

そこで、本当に IO.popen と Open3. とで安定度が違うのかどうかを確認
しておくために、それぞれを1万回繰り返して実行してみました。

その結果、例の不審挙動の発生率は:

        IO.popen 使用 : 410 回 / 10000 回
        Open3.   使用 :   0 回 / 10000 回

でした。

少なくとも今回の私の使い方の場合、Open3 を使った時に比べて IO.popen
を使った場合の方が明らかに不安定であるということは確信できました。
(何の解決にもなってはいませんが。)

なお、上記は Windows で実行した結果です。

同じデータ、同じスクリプトで Linux (Ubuntu 12.04) でも試してみました。
Ruby のバージョンは Windows と同じで、やはり自前ビルドしたものです。

その結果、Linux では IO.popen も Open3. も現象は起きませんでした。

どうやら Windows 版の Ruby だけの現象のようです。

-- 
尾川敏也 ogw@shizuokanet.ne.jp
http://www6.shizuokanet.ne.jp/ogw/

In This Thread