fork() is not implemented in MacRuby, and I don't think it will be implemented
anytime in the near future because of
conflicts with the CoreFoundation framework and the Garbage Collector (as I
understand it).
The same is true for Objective-C applications.
NSTask is definitely the way to go, but you shouldn't experience a segmentation
fault.
Looks like a bug.
Perhaps try macruby-nightly, and if it isn't fixed, open a ticket?
On 3 Nov 2010, at 14:31, Louis-Philippe wrote:
> Hi all,
>
> I'm looking around MacRuby to find a way to run a subprocess and monitor it,
> here is what I tried:
>
> NSTask:
>
> framework "foundation"
> task = NSTask.launchedTaskWithLaunchPath("/bin/ls", arguments:"-l")
> p task.isRunning
> p task.standardOutput
>
> => Segmentation fault
>
> Open4:
>
> require 'rubygems'
> require 'popen4'
> status = POpen4::popen4('irb') { |stdout,stderr,stdin,pid|
> stdin.puts "a = 1"
> stdin.puts "a == 1"
> stdin.close
> puts "pid: #{pid}"
> puts "stdout: #{stdout.read.strip}"
> puts "stderr: #{stderr.read.strip}"
> }
> puts "status: #{status.inspect}"
> puts "exitstatus: #{status.exitstatus}"
>
> =>
> /Library/Frameworks/MacRuby.framework/Versions/0.7/usr/lib/ruby/Gems/1.9.2/gems/open4-1.0.1/lib/open4.rb:15:in
> `open4:': fork() function is unimplemented on this machine
> (NotImplementedError)
> from
> /Library/Frameworks/MacRuby.framework/Versions/0.7/usr/lib/ruby/Gems/1.9.2/gems/POpen4-0.1.4/lib/popen4.rb:75:in
> `popen4:'
> from
> /Users/lpperron/Documents/lllaptop/git_repos/Redis/testResque/testOpen4.rb:3:in
> `<main>'
>
> Open3:
>
> require 'open3'
> puts "starting..."
> Open3.popen3('irb') { |stdin,stdout,stderr|
> stdin.puts "a = 1"
> stdin.puts "a == 1"
> stdin.close
>
> puts "stdout: #{stdout.read.strip}"
> puts "stderr: #{stderr.read.strip}"
> }
>
> => starting...
>
> So... NSTask segfaults... Open4 cannot work because of unimplemented 'fork'
> in MacRuby and Open3 hangs?
> Anybody has an other solution to launch and monitor a subprocess?
>
> Thanks!
>
> L-P
> _______________________________________________
> MacRuby-devel mailing list
> [email protected]
> http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel
_______________________________________________
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel