From: Christopher Dancy Date: 2010-04-08T01:50:00+09:00 Subject: Re: Getting output of program with some DRb for good measure Christopher Dancy wrote: > I'm running a DRb service which accepts a string and than > processes that file name on the server side. So I've been digging around > the internet and it seems people have been running into the same > problems as me. The DRb service will execute the file ... but doing so > will block the DRb service until IO.popen is finished. A way of getting > around this is to put the executing IO.popen block into a thread ... > which does work. The problem comes when printing to standard out ... it > wont. > > IO.popen("#{command_string}","w+") do |ant_output| > Thread.new { > ant_output.each do |line| > puts line > end > } > end > > I need the output of the given program being run to be printed to the > screen and I can't seem to figure it out... any suggestions? I've narrowed down the problem a bit ... it seems I get the output from within the thread but not from within the ant_ouput block. So if I do something like .. IO.popen("#{command_string}","w+") do |ant_output| Thread.new { puts "hello world" ant_output.each do |line| puts "fish sticks" puts line end } end I do get the "hello world" but not the "fish sticks" ... I've tried passing the ant_output block to the thread but still nothing. -- Posted via http://www.ruby-forum.com/.