senda> runよんだときに即座にスイッチしてしまうのかな?
senda> そうだとすると、Signal-Continueの不要なコンテキストを減らすという動作になっ
senda> ていませんね。
senda> 

eval.c の thread_run()をみればわかりますが、
とりあえず、

  def signal
    @waiters_mutex.synchronize {
      t = @waiters.shift
      if t then
	Thread.critital = TRUE
	t.run
	Thread.critital = FALSE
    }
  end

とすることでその場のschedulingを回避できるようです。

# 実装の内部に依存する新たな難読Rubyプログラム :-)


						S.Senda