DEQです。

* [ruby-list:28236] Re: CGI でのロック (was: File.rename の例外);
At 10:42:39 pm 2001/2/24, rubikitch wrote:
> 俺はただただしさんのRuBBSのロック関数を流用してます。

 ソース見ました。(RuBBS 0.3.2)
これだと http://www.din.or.jp/~ohzaki/perl.htm (大崎氏のPerlメモ)に
書かれている、[ rmdir if ロック状態が一定時間続いている場合 ] では
> これが symlink や mkdir, rename のときと違って,ロックを解除するかどうかの
> 判断と実際にロックを解除する操作を同時に行なっているわけではないということが
> 問題となります.具体的に何がまずいのかというと,正常なロック状態も解除してし
> まうことがあるということです.
というのが起こりえそうな気がします。
 現象が起こる頻度はそれほど高くなさそうですが、
起こりえるとしたらやはり嫌な気がします。

> ロック関数をモジュールでくくって、
> 
> Lock::lock("lock") do
>   ロック中の処理
> end
> 
> と使ってます。

 ブロックやyieldはこういう風にも使うんですね。
初心者には勉強になります。:-)

---   DEQ / INOUE Kenji <deq / oct.zaq.ne.jp>
http://www.necoware.com/~deq/