中井と申します。
回答ありがとうございます。

-------------------------------------------------------
matz / netlab.co.jp (Yukihiro Matsumoto) さんは書きました:
>まつもと ゆきひろです
>
>	:
>	:
>
>さらに,特にPythonに見られるんですが.
>
>  f = open(path, mode)
>  #...
>  f = None
>
>でfに代入した瞬間にcloseされることを期待するようなコーディン
>グを助長するのは,ダメとは言わないものの心苦しいです.
-------------------------------------------------------

最近、私は仕事の上でC++を使う機会が多いのですが、C++(やPerl)
では、「ブロックから抜けるところで終了処理をする」ことを期待
したコーディング(イデオム?)があります。

上記の例を疑似コードで書きますと

    {
        :
        f1 = open( .... );
        :
        {
            f2 = open( .... );
            :
        }            <--- f2 ここで close
        :
    }            <--- f1 ここで close

まあ、C++の実状としては、(参照カウント式の)メモリー管理を
実現するためといえそうなんですけど...

あと Perlでいえば SelectSaver モジュールなんてのもありますね
まあ、そもそもこれは select なんて機能を必要とするデザインが
悪いんですけど...

こう考えてくると、

-------------------------------------------------------
>まず,発生条件としては資源の不足が検出できるなら,rubyのレベ
>ルで明示的にGCをスタートさせれば良いと思います.つまり,その
>時点で GC.start ですね.
-------------------------------------------------------

ですね。 :-)

それでは、失礼いたします。

--
T.NAKAI  nakai / m1.sys.to.casio.co.jp