From: keiju@... (Keiju ISHITSUKA) Date: 1997-01-29T02:10:35+09:00 Subject: [ruby-list:1926] [Dist] Mutex module けいじゅ@SHLジャパンです. 松本氏にヒントを教わりMutexのモジュール版を作成中です. その中で2点バグ を見つけました. それと, 疑問なところが一つありました. 1. Hash#delete(elm) {...} 削除したいelmがハッシュにない場合ブロックにnilが渡されます. h = Hash.new h.delete(1) do |elm| print elm end --> nil 対応する要素がない場合, イテレータを呼ばない方が良いのでは? 2. Hash#[], key?... ハッシュにハッシュが入っていると検索できません. h = Hash.new g = Hash.new g[h] = h print g[h] --> nil # おかげでmutexがロックしなくなった... 3. Mutex#try_lock これはMutex#try_lockの動作に関する質問も含めてです. Mutex#try_lockをみ ると次のような定義になっています. def try_lock Thread.critical = TRUE if @locked FALSE else @locked = TRUE end Thread.critical = FALSE end このメソッドって, lockができたかどうか真偽値を返したいのだと思いますが... ちゃんと動作していますか? 常にFALSEがreturnするような... __ .....................................石塚 圭樹@SHLジャパン(株)... ------------->アドレス変わりました!! e-mail: keiju@shljapan.co.jp <----