Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Change Policy: implicit file close
- From: knok@xxxxxxxxxxxxx
- Date: Tue, 20 Jan 2004 16:40:22 +0900
- X-ml-name: namazu-devel-ja
- X-mail-count: 03572
- References: <3FFA8640.A8842E84@asahi-net.or.jp> <b5cf0b350acdf765e4d5aca8220ca508@ms.ddt.or.jp> <3FFAD9DE.5DCB3BB3@asahi-net.or.jp> <3FFBF884.E2B4784E@asahi-net.or.jp>
devel-ja にふります。
経緯としては以下のような感じです。
* too many open file で処理が正常に動作しないケースが報告された
* いまの HACKING-ja ではファイルのクローズをデストラクタまかせにするこ
とになっている
* しかし perltoot によればデストラクタが呼び出される時期は不定であるこ
とが判明
これらを踏まえ、HACKING-ja およびコードを修正する必要がでてきました。
At Wed, 07 Jan 2004 21:16:04 +0900,
Tadamasa Teranishi wrote:
> 使い終わったら $fh->close() を呼ぶというのが安全そうです。
> util::fopen() に対応する util::fclose() とでも用意して、そこで
> $fh->close() を呼ぶようにしましょうか?
>
> HACKING-ja は修正して、util::fopen(), util::efopen() でファイル
> をオープンした後は util::fclose() でファイルを閉じることとでも
> すれば良いかな?
他には undef で明示的にデストラクタを呼ぶ、という選択肢もあります。
いくつかのモジュールはそのような処理をしています。
対称性を考えると util::fclose() を用意した方がよいような気もしますし、
file アクセスの抽象化という意味でもそうした方が後処理をそこに仕込むこ
とも容易にできそうです。
どちらがよいでしょうね?
--
野首 貴嗣
E-mail: knok@xxxxxxxxxxxxx
knok@xxxxxxxxxx / knok@xxxxxxxxxx