James Gray
5/4/2008 7:03:00 PM
On May 4, 2008, at 1:48 PM, Emil Sandin wrote:
> 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?
Add this line early in your program:
Thread.abort_on_exception = true
Hope that helps.
James Edward Gray II