blob: 3364ed06d02234fd32837e9e5cba0b4e7416315b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
ready = false
t = Thread.new do
f = Fiber.new do
begin
Fiber.yield
ensure
STDERR.puts "suspended fiber ensure"
end
end
f.resume
f2 = Fiber.new do
begin
ready = true
sleep
ensure
STDERR.puts "current fiber ensure"
end
end
f2.resume
end
Thread.pass until ready && t.stop?
# let the program end, it's the same as #exit or an exception for this behavior
|