From: Nobuyoshi Nakada Date: 2007-06-20T17:08:03+09:00 Subject: Re: Question about the patchlevel release cycle Hi, At Wed, 20 Jun 2007 16:11:35 +0900, Sylvain Joyeux wrote in [ruby-core:11509]: > > could you refer to bug #s? > > > > 1.8.6 thread support was broken in bad ways. It stayed for three > > > months > unfortunately, I don't find the bugreport. It has been discussed first on > ruby-core and then opened (as far as I remember) > See ruby-core:10594 And the next report is [ruby-dev:30653], which the following code dumps core. -----lb.rb------ require 'thread' class LocalBarrier def initialize(n) @wait = Queue.new @done = Queue.new @keeper = begin_keeper(n) end def sync @done.push(true) @wait.pop end def join @keeper.join end private def begin_keeper(n) Thread.start do n.times do @done.pop end n.times do @wait.push(true) end end end end n = 10 lb = LocalBarrier.new(n) (n - 1).times do |i| Thread.start do sleep(rand(n) + 1) puts "#{i}: done" lb.sync puts "#{i}: cont" end end lb.sync puts "#{n-1}: done" puts "exit." ---------------- -- Nobu Nakada