[macruby-changes] [1456] MacRuby/branches/experimental/spec/frozen/core/thread/shared/exit.rb
source_changes at macosforge.org
source_changes at macosforge.org
Wed Apr 22 15:10:16 PDT 2009
Revision: 1456
http://trac.macosforge.org/projects/ruby/changeset/1456
Author: eloy.de.enige at gmail.com
Date: 2009-04-22 15:10:15 -0700 (Wed, 22 Apr 2009)
Log Message:
-----------
Thread#exit runs nested ensure clauses.
Modified Paths:
--------------
MacRuby/branches/experimental/spec/frozen/core/thread/shared/exit.rb
Modified: MacRuby/branches/experimental/spec/frozen/core/thread/shared/exit.rb
===================================================================
--- MacRuby/branches/experimental/spec/frozen/core/thread/shared/exit.rb 2009-04-22 22:10:05 UTC (rev 1455)
+++ MacRuby/branches/experimental/spec/frozen/core/thread/shared/exit.rb 2009-04-22 22:10:15 UTC (rev 1456)
@@ -28,6 +28,28 @@
thread.join
ScratchPad.recorded.should == :in_ensure_clause
end
+
+ it "runs nested ensure clauses" do
+ ScratchPad.record []
+ outer = Thread.new do
+ begin
+ inner = Thread.new do
+ begin
+ ensure
+ ScratchPad << :inner_ensure_clause
+ end
+ end
+ Thread.current.send(@method)
+ ensure
+ ScratchPad << :outer_ensure_clause
+ inner.send(@method)
+ inner.join
+ end
+ end
+ outer.join
+ ScratchPad.recorded.should include(:inner_ensure_clause)
+ ScratchPad.recorded.should include(:outer_ensure_clause)
+ end
it "does not set $!" do
thread = ThreadSpecs.dying_thread_ensures(@method) { ScratchPad.record $! }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20090422/6d3ef0bb/attachment.html>
More information about the macruby-changes
mailing list