2008-06-17から1日間の記事一覧

callccでコルーチン

呼び出し元のスタックフレームまで記憶しているのがワケワカ。 継続とコルーチンは違うのね… def coroutine loop do puts '春' continue = callcc {|c| c } and return(continue) puts '夏' continue = callcc {|c| c } and return(continue) puts '秋' cont…

Ruby1.8でのコルーチンの実装を考える

実装はできそうだけど、ネイティブスレッドを使うのは危険かなぁ。 corutine = Corutine.create do |c| # コルーチンスレッドの生成、メインスレッドの取得 loop do puts '春' c.suspend # メインスレッドに制御を移す puts '夏' c.suspend puts '秋' c.susp…