Prev: modifying a Hash in one process when .each is running in another
Next: xml to ruby compactible json
From: Christopher Dancy on 7 Apr 2010 10:59 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 7 Apr 2010 12:50 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 7 Apr 2010 15:54 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 7 Apr 2010 16:05 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/.
|
Pages: 1 Prev: modifying a Hash in one process when .each is running in another Next: xml to ruby compactible json |