Revision: 1949 http://trac.macosforge.org/projects/ruby/changeset/1949 Author: lsansonetti@apple.com Date: 2009-06-27 17:28:31 -0700 (Sat, 27 Jun 2009) Log Message: ----------- fixed/added specs Modified Paths: -------------- MacRuby/branches/experimental/spec/frozen/core/thread/list_spec.rb MacRuby/branches/experimental/spec/frozen/core/thread/shared/wakeup.rb Modified: MacRuby/branches/experimental/spec/frozen/core/thread/list_spec.rb =================================================================== --- MacRuby/branches/experimental/spec/frozen/core/thread/list_spec.rb 2009-06-27 20:36:24 UTC (rev 1948) +++ MacRuby/branches/experimental/spec/frozen/core/thread/list_spec.rb 2009-06-28 00:28:31 UTC (rev 1949) @@ -17,6 +17,7 @@ c = Channel.new t = Thread.new { c.receive } begin + Thread.pass while t.status and t.status != 'sleep' Thread.list.should include(t) ensure c << nil Modified: MacRuby/branches/experimental/spec/frozen/core/thread/shared/wakeup.rb =================================================================== --- MacRuby/branches/experimental/spec/frozen/core/thread/shared/wakeup.rb 2009-06-27 20:36:24 UTC (rev 1948) +++ MacRuby/branches/experimental/spec/frozen/core/thread/shared/wakeup.rb 2009-06-28 00:28:31 UTC (rev 1949) @@ -40,10 +40,21 @@ end while(t.status != false) do - t.send(@method) + begin + t.send(@method) + rescue ThreadError + # The thread might die right after. + t.status.should == false + end Thread.pass end 1.should == 1 # test succeeds if we reach here end + + it "raises a ThreadError when trying to wake up a dead thread" do + t = Thread.new { 1 } + t.join + lambda { t.wakeup }.should raise_error(ThreadError) + end end