Blocking IO on windows in IRB


#1

Is there anyway around the blocking IO on windows? I’m trying to write
an ruby app that is designed to be used from irb. It uses background
threads to do some work, but they don’t appear to block at input on
windows.

Eg, running:

Thread.new { sleep 2; p ‘hi’ }

on windows, from irb, will never print ‘hi’, unless you press some keys.
Meanwhile on linux it will print just fine after 2 seconds.


#2

On Jul 15, 2007, at 6:29 PM, Charles L. wrote:

Is there anyway around the blocking IO on windows? I’m trying to write
an ruby app that is designed to be used from irb. It uses background
threads to do some work, but they don’t appear to block at input on
windows.

basically, if you have to do background io use another process. my
systemu lib is a cross platform way of dealing with stdin/out/err etc
for background processes - you might want to check it out for ideas

http://codeforpeople.com/lib/ruby/systemu/systemu-1.0.0/README

     gem install systemu

this plus code generation can skin some cats. good luck.

a @ http://drawohara.com/