[PHP-users 14394]Re: requireとflockについて

WADA Masashi wada @ hh.iij4u.or.jp
2003年 3月 31日 (月) 21:19:31 JST


 和田です。

いちろう たこす wrote:
>common.incを書き換えるスクリプトで
>書き換える直前に特定のディレクトリにロックファイルを
>作成してcommon.incを書き換えた後にそのファイルを消す。
>common.incを読み込む側はrequireする前にそのファイルが
>存在しているかsleepをかまして5回ループさせて確認させて
>もし存在していたら一定期間待って待ち時間を超えたらエラー
>メッセージを出す、もしファイルが存在していなかったら
>そのままスクリプト続行させる。こんなんでいかがでしょうか?

 ロックファイルが存在しないことを確認してから require を実行し
ても、実行中に common.inc への書き換えが抑止されるわけではないの
で、上記の方法では問題があります。
 読込むときも書き換えるときも、まずは自分で約束したファイル
(例えば common.lock )をロックしてから、目的のファイルにアクセ
スすることになるでしょう。

 しかし私は require されたファイルがPHP側でどのように扱われてい
るか把握できていないので、ロックの範囲が require() の前後だけで
いいのかどうか判断しかねます。
#require を利用しない方法は、しょうなりさんが紹介されていますね。


----
和田雅志 (WADA Masashi)
wada @ hh.iij4u.or.jp



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