From: matz@... (Yukihiro Matsumoto) Date: 1997-01-29T11:55:32+09:00 Subject: [ruby-list:1929] Re: [Dist] Mutex module まつもと ゆきひろです. In message "[ruby-list:1926] [Dist] Mutex module" on 97/01/29, Keiju ISHITSUKA writes: |けいじゅ@SHLジャパンです. |松本氏にヒントを教わりMutexのモジュール版を作成中です. その中で2点バグ |を見つけました. それと, 疑問なところが一つありました. | |1. Hash#delete(elm) {...} | |削除したいelmがハッシュにない場合ブロックにnilが渡されます. ふにゃ? Hash#deleteがイテレータとして呼ばれた時には削除する べき要素がない時に評価されるはずです.この仕様は石塚さんの要 求だったはずですが. # delete:ifNone:のイメージですね. 要求した本人が間違えるような仕様は外そうかなあ(イテレータで なくする). |2. Hash#[], key?... | |ハッシュにハッシュが入っていると検索できません. 忘れていましたがもともと Hashのようなhash値の変わるオブジェ クトはキーにできないのでした.しかし,この場合にはhash値が変 わっていないので,これもきっとバグでしょう. これはどうするか悩ましいところですが,Hashをキーにできないの もなんか不便な気がするので,eql?とhashの定義を見直しましょう. Hashをキーとした場合にはオブジェクトの同一性で一致を見ること にして良いですね(内容ではなく). |3. Mutex#try_lock | |これはMutex#try_lockの動作に関する質問も含めてです. Mutex#try_lockをみ |ると次のような定義になっています. ばれたか.実は昨日気がついて修正していました.次のリリースで は直っています. まつもと ゆきひろ /:|)