summaryrefslogtreecommitdiff
path: root/spec/ruby/core/exception/fixtures/thread_fiber_ensure.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/core/exception/fixtures/thread_fiber_ensure.rb')
-rw-r--r--spec/ruby/core/exception/fixtures/thread_fiber_ensure.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/spec/ruby/core/exception/fixtures/thread_fiber_ensure.rb b/spec/ruby/core/exception/fixtures/thread_fiber_ensure.rb
new file mode 100644
index 0000000000..c109ec6247
--- /dev/null
+++ b/spec/ruby/core/exception/fixtures/thread_fiber_ensure.rb
@@ -0,0 +1,22 @@
+ready = false
+t = Thread.new do
+ f = Fiber.new do
+ begin
+ Fiber.yield
+ ensure
+ STDERR.puts "suspended fiber ensure"
+ end
+ end
+ f.resume
+
+ begin
+ ready = true
+ sleep
+ ensure
+ STDERR.puts "current fiber ensure"
+ end
+end
+
+Thread.pass until ready && t.stop?
+
+# let the program end, it's the same as #exit or an exception for this behavior