From: Katsuyuki Komatsu Date: 2000-05-18T20:48:39+09:00 Subject: [ruby-dev:9756] deadlock detection problem 小松です。 deadlock検出テストに使っている[ruby-list:15168]が ハングするようになってしまいました。 % ruby-1.5.4 -v ← 2000-05-18のcommitからハングするようになった ruby 1.5.4 (2000-05-18) [sparc-solaris2.5.1] % ruby-1.5.4 ruby-list-15168.rb ruby-list-15168.rb require "thread" q = Queue.new Thread.start { while gets q.push $_ end } while TRUE while line = q.pop print line end end ^C/usr/local/lib/ruby/1.5/thread.rb:176:in `stop': Interrupt from /usr/local/lib/ruby/1.5/thread.rb:176:in `pop' from /usr/local/lib/ruby/1.5/thread.rb:171:in `loop' from /usr/local/lib/ruby/1.5/thread.rb:171:in `pop' from ruby-list-15168.rb:13 % ↑ハングしたので^Cで止めた % ruby-1.4.4 -v ← 昔の動作の例 ruby 1.4.4 (2000-04-14) [sparc-solaris2.5.1] % ruby-1.4.4 ruby-list-15168.rb ruby-list-15168.rb require "thread" (中略) end /usr/local/lib/ruby/1.4/thread.rb:171:deadlock 0xe57b8: 1:0 (main) ruby-list-15168.rb:7:in `pop': Thread: deadlock (fatal) from /usr/local/lib/ruby/1.4/thread.rb:166:in `loop' from /usr/local/lib/ruby/1.4/thread.rb:166:in `pop' from ruby-list-15168.rb:13 % ↑deadlockになった -- 小松克行 / Katsuyuki Komatsu