From: Christopher Dancy on
I'm running a DRb service which accepts a string<file name> 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?
--
Posted via http://www.ruby-forum.com/.

From: Christopher Dancy on
Christopher Dancy wrote:
> I'm running a DRb service which accepts a string<file name> 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/.

From: Brian Candler on
You're using Windows, I guess? I would be very surprised if DRb blocks
in this way under Linux.
--
Posted via http://www.ruby-forum.com/.

From: Christopher Dancy on
Brian Candler 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.
--
Posted via http://www.ruby-forum.com/.