From: ara.t.howard@... Date: 2007-03-27T23:32:13+09:00 Subject: Re: Timeout and windows On Tue, 27 Mar 2007, Jamie wrote: > Hello, > > I am using windows, which is probably the source of the problem. > > I have a pipe that executes an external Ruby program, and i want to have > a timeout on the pipe. The problem is that when the time is up the pipe > process is not terminated. The pipe finishes its task and then returns > in its own time; howver the timeout is acknowledged on its return - its > just that the process is not interupted as it should be after t seconds. > > I think this is probably a result of windows and threading, but is there > a way around it while i continue to use windows? pipes and windows under ruby is a bad, bad idea unless you are very very careful. the definitely should not also put threads into the mix. the timeout library is implimented using a thread. take a look at this # gem install systemu http://codeforpeople.com/lib/ruby/systemu/systemu-1.0.0/README samples/f.rb shows the facility you will need to kill the process if the time goes beyond a certain limit. it's also safe to use systemu from inside a timeout block Timeout.timeout(4) do system 'ruby -e" sleep 42 "' end regards. -a -- be kind whenever possible... it is always possible. - the dalai lama