[PHP-users 25023] Re: cli をデーモンとして使用する際の注意

ISIGE, Akira xia @ silvia.com
2005年 3月 22日 (火) 17:26:16 JST


いしげ です.

> そうなんです。stream_socket_accept()で返ってくるソケットを、
> fclose()しても次に返ってくる値は増えます。実はリソースそのも
> のは開放されていて、数値もじきに元に戻る(?)だったりするとい
> いのですが。

ちょっとソース追ってみました.
この値(リソースID)は,Zend/zend_hash.c で ulong として定義されている
nNextFreeElement の値を使っているようです.
で,この値は,リソースの解放とは無関係にインクリメントする模様です.

ソースをざっと見ると,初期化などのタイミング以外ではプラスされる一方で,
特にオーバフローチェックはしていないように見えます.
リソース値が ulong を超えるというのはそれこそ天が落ちるようなものだと
いうことなのでしょうか……

ともあれ,数値が戻らないからリソースが解放されていない,
というわけではなさそうです.
(oci8の接続とかみたく,実は解放されていないという可能性もゼロではありません
が :-)


-- 
ISIGE, Akira



PHP-users メーリングリストの案内