Getting output of program with some DRb for good measure

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?

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.

Brian C. wrote:

You’re using Windows, I guess? I would be very surprised if DRb blocks
in this way under Linux.

Yes I am using windows as well as various version of unix. I’m testing
it on windows … if I can get it running on windows than everything
else is a piece of cake.

You’re using Windows, I guess? I would be very surprised if DRb blocks
in this way under Linux.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs