Revision
1949
Author
lsansonetti@apple.com
Date
2009-06-27 17:28:31 -0700 (Sat, 27 Jun 2009)

Log Message

fixed/added specs

Modified Paths

Diff

Modified: MacRuby/branches/experimental/spec/frozen/core/thread/list_spec.rb (1948 => 1949)


--- 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 (1948 => 1949)


--- 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