[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Re: system? exec? fork? thread? Help managing external process

Joel VanderWerf

1/14/2005 5:45:00 AM

McMahon, Chris wrote:
>
> Hello...
> I'm new to Ruby and I need some help with managing an external
> process. I'm on Windows, and I want to do something (overly simplified)
> like this:
>
> File.new(file_to_be_handled_by_outside_process.txt)
> system ("C:\\filewatcher.exe file_to_be_handled_by_outside_process.txt")
> <write stuff to file_to_be_handled_by_outside_process.txt>
>
> The foreign process started by system() never stops. I need to
> return control to the Ruby script after the system() call so that I can
> have the Ruby script generate information for the foreign process to
> handle.
> Any suggestions would be welcome...
> -Chris

Just doing the system call in a thread works on windows,

Thread.new do
system "foo"
end

# code to keep processing while foo runs...


For example:

Thread.new do
system "sleep 10"
puts "slept"
end

loop do
puts "hello"
sleep 1
end


I ran this on linux, but I'm pretty sure it works on windows too.

But you may want to consider popen, as was suggested, so you don't have
concurrency problems with the two processes accessing the file.