Hi Nobu,

> Using a pipe (or any IO) as the trigger which wakes Monitor up.

That doesn't work. Blocking on a pipe (or any IO) in Windows blocks the
entire ruby process. This sample will just block and get no where in Windows
after writing "hello from main" once, while in Linux it happily prints
"hello from main" once a second.

readPipe, writePipe = IO.pipe

t = Thread.new { while true; sleep 1; puts "got #{readPipe.readline}"; end }

while true
  sleep 1
  puts "hello from main"
end

t.join


Out of curiousity, why does this happen on Windows? Is it not fixable?

Tom