ruby - A fiber issue with `autoload`: `fiber called across stack rewinding barrier (FiberError)` -


we using fiber eventmachine (em-synchrony) in our production env quite long time, , works well. use outdated ruby 1.9.3 , activerecord 3.x on 2 years. migrating 2 big parts latest versions.

when trying upgrade ruby latest, got exception fiber called across stack rewinding barrier (fibererror) in 2.0+, not in 1.9.3. can guys figure out problem?

minimal sample:

test.rb

autoload :user, './user.rb'  f = fiber.new   p user end f.resume f.resume 

user.rb

class user end  fiber.yield # line important 

run

$ rvm 1.9.3,2.0,2.1 sh -c 'echo ==== $ruby_version; ruby test.rb' ==== ruby-1.9.3-p551 user ==== ruby-2.0.0-p598 user.rb:4:in `yield': fiber called across stack rewinding barrier (fibererror)     user.rb:4:in `<top (required)>'     test.rb:4:in `block in <main>' ==== ruby-2.1.5 user.rb:4:in `yield': fiber called across stack rewinding barrier (fibererror)     user.rb:4:in `<top (required)>'     test.rb:4:in `block in <main>' 

more sample codes in repo:

https://github.com/qqshfox/test_fiber

any appreciated!


Comments

Popular posts from this blog

javascript - Any ideas when Firefox is likely to implement lengthAdjust and textLength? -

matlab - "Contour not rendered for non-finite ZData" -

delphi - Indy UDP Read Contents of Adata -