fiber

lispとrubyとpythonと その7 継続とFiberの続き(ruby)

継続ってスタックをどっかに保存しとくんだろうけど、じゃあ別スレッドの継続ってどうなるんだろ、と思って実験。 RuntimeError: continuation called across threads だって。 require 'continuation' puts "\n" $c1 = nil def test0(arg) printf "test0 be…

lispとrubyとpythonと その7 継続とFiber(rubyと少しだけlisp)

頭が継続脳になっていないためかもしれないけど、継続欲しいなー、、、と普段思うことはない。 でもまぁ継続があるのもrubyの特徴なのかなぁ、と思ったので書いてみる。 簡単な例。 require 'continuation' i = 0 c1 = nil callcc do|c| c1 = c end i = i + …

rubyのfiber

RubyにはジェネレータがないかわりにFiberがある。 リファレンスはここ404 Not Found require "fiber" f = Fiber.new do i = 0 while(true) Fiber.yield i i = i + 1 end end f.resume #=>0 f.resume #=>1 f.resume #=>2