Actions
Bug #6117
closedTransfers allowed into Fibers that have resumed into other fibers
Description
Consider the following code:
require 'fiber'
def foo
order = []
main_fiber = Fiber.current
a = Fiber.new do
order << 2
x = Fiber.new do
order << 4
main_fiber.transfer
order << 6
end
order << 3
x.resume
order << 7
end
order << 1
a.transfer
order << 5
a.transfer
order << 8
end
It produces output:
[1, 2, 3, 4, 5, 7, 8]
Note: the missing 6. I'd expect either the array to be 1-8 OR for an exception to be raised after 5 when the main fiber attempts to transfer into a again.
Either it shouldn't be possible to transfer into a Fiber that is blocked resuming another Fiber, OR it should automatically resume the sub-Fiber.
Actions
Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0