[#76442] [Ruby trunk Feature#11741] Migrate Ruby to Git from Subversion — naruse@...
Issue #11741 has been updated by Yui NARUSE.
3 messages
2016/07/19
[#76515] [Ruby trunk Bug#12610] webrick: protect from httpoxy — nagachika00@...
Issue #12610 has been updated by Tomoyuki Chikanaga.
3 messages
2016/07/22
[ruby-core:76270] [Ruby trunk Bug#12555] Cannot resume a fiber that was earlier transferred from, then transferred to, and then yielded
From:
arindam.mukerjee@...
Date:
2016-07-05 18:36:04 UTC
List:
ruby-core #76270
Issue #12555 has been reported by Arindam Mukherjee.
----------------------------------------
Bug #12555: Cannot resume a fiber that was earlier transferred from, then transferred to, and then yielded
https://bugs.ruby-lang.org/issues/12555
* Author: Arindam Mukherjee
* Status: Open
* Priority: Normal
* Assignee: ruby-core
* ruby -v: 2.3.0
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
Consider the following code snippet:
~~~
require 'fiber'
fiber2 = nil
fiber1 = Fiber.new do
puts "In Fiber 1" # 3
fiber2.transfer # 4
end
fiber2 = Fiber.new do
puts "In Fiber 2" # 1
fiber1.transfer # 2
puts "In Fiber 2 again" # 5
Fiber.yield # 6
puts "Fiber 2 resumed" # 10
end
fiber3 = Fiber.new do
puts "In Fiber 3" # 8
end
fiber2.resume # 0
fiber3.resume # 7
fiber2.resume # 9
~~~
I have numbered the lines of code with the expected serial order of execution on the right. Once `fiber3.resume` returns and I call `fiber2.resume`, I expect the execution to continue inside `fiber2` at the line marked # 10. Instead, I get the following error:
~~~
fiber2.rb:24:in `resume': cannot resume transferred Fiber (FiberError)
from fiber2.rb:24:in `<main>'
~~~
That's an error reported from the last line of the listing: `fiber2.resume`.
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>