北海道苫小牧市出身の初老PGが書くブログ

永遠のプログラマを夢見る、苫小牧市出身のおじさんのちらしの裏

MTのソースを眺める

特に、mysql周りのソースを見てたんだけど、一つ不思議な点が。コネクションを、グローバルスコープな変数に入れてるんだよね。具体的には、$MT::Object::DRIVERに保存されたオブジェクトの中。このオブジェクトが破棄されるときに、DESTROY()でdisconnectされるつくりになってるんだけど、mod_perl配下だと$MT::Object::DRIVERはキャッシュされたままになり、破棄されないから繋ぎっぱなしにならんか?



うーんうーんと散々なやんでたら、ずるいことしてる個所を発見。さらに上層の、MT::Appが破棄されるとき、無理矢理undef $MT::Object::DRIVERなんてやってた。こりゃあひどいって。