From: akl Date: 2008-05-05T04:05:04+09:00 Subject: Re: Don't wait for Exception in threads Hi Emil, Emil Sandin schrieb: > I have two threads running in parallell, like this: > > #################### > > t1=Thread.new{ > 50.times{ > p "thread one" > sleep 0.1 > } > } > > t2=Thread.new{ > p "thread two" > raise "error in thread two" > } > > t1.join > t2.join > > ################# > The output is: > "thread one" > "thread two" > "thread one" > ... 48 times more "thread one" > "thread one" > testscript.rb:15: error in thread two (RuntimeError) > from testscript.rb:19:in `join' > from testscript.rb:19 > > The program waits for the first thread to complete before telling me > that the second one raised an exception. > I don't want to wait until the first thread finishes to see the > exception, I want to see it right away. > How can I do that? You can do something like: Thread.abort_on_exception = true t = [] t << Thread.new { 50.times{ p "thread one" sleep 0.1 } } t << Thread.new { p "thread two" raise "error in thread two" } t.each {|t| t.join } I dont have tested the example, but this way you should see the Exception in the Moment it occurs Andi