On Dec 30, 2008, at 15:00 PM, Shri Borde wrote: > Thread.critical= is supposed to not schedule any other thread, in > addition to guaranteeing that only one thread is ever in the block > with Thread.critical==true. This is easier to support with green > threads. This is not true, Thread.critical= does not automatically schedule other threads. The programmer can schedule other threads as they desire, however: $ cat thr.rb Thread.critical = true t2 = Thread.start { puts "in other thread" } puts "t2 finished: #{t2.inspect}" $ ruby thr.rb in other thread t2 finished: #<Thread:0x29324 dead>