From: "naruse (Yui NARUSE)" Date: 2012-04-08T22:27:09+09:00 Subject: [ruby-dev:45498] [ruby-trunk - Bug #6272][Assigned] Rinda sticks on some tests Issue #6272 has been reported by naruse (Yui NARUSE). ---------------------------------------- Bug #6272: Rinda sticks on some tests https://bugs.ruby-lang.org/issues/6272 Author: naruse (Yui NARUSE) Status: Assigned Priority: Normal Assignee: seki (Masatoshi Seki) Category: lib Target version: ruby -v: ruby 2.0.0dev (2012-04-08 trunk 35259) [x86_64-freebsd9.0] Rindaが例えば以下のようにすると刺さります。 while [ yes ];do;make test-all TESTS='-v -n test_ruby_talk_264062 rinda/test_rinda.rb' RUBYOPT=-w;done しばらく追ってみたところ、Rinda は Monitor#synchronize をすることで同期を守っているのですが、 そのテストでは時刻を Rinda::MockClock で扱い、その中で Rinda::MockClock::MyTS を用いて時刻を配信しているのですが、 この TupleSpace は複数のスレッドから触られるため、同一のスレッドからなら何度入ってもロックしない Monitor#synchronize でも、デッドロックしてしまうからっぽい気がします。 -- http://bugs.ruby-lang.org/