Windows7 x64 Ruby 1.8.7 fork gem 1.0.0错误

时间:2012-07-17 21:44:53

标签: ruby winapi rubygems windows-7-x64

我正在尝试使用Fork gem(版本1.0.0)创建子进程。

我的基本代码框架是:

child = Fork.new do |child|
   ## something something something
   ##        loop loop loop
   ## something something something
end
child.execute
child.wait

在我相信的示例代码之后,它总是返回一个非常反直觉的错误:

C:/Ruby187/lib/ruby/gems/1.8/gems/fork-1.0.0/lib/fork.rb:237:in `fork': fork() f
unction is unimplemented on this machine (NotImplementedError)
    from C:/Ruby187/lib/ruby/gems/1.8/gems/fork-1.0.0/lib/fork.rb:237:in `ex
ecute'

我确实安装了正确的宝石:

*** LOCAL GEMS ***

addressable (2.2.8)
childprocess (0.3.3)
ffi (1.0.11)
fork (1.0.0)
libwebsocket (0.1.4)
multi_json (1.3.6)
mysql2 (0.3.11 x86-mingw32)
net-sftp (2.0.5)
net-ssh (2.5.2)
net-ssh-gateway (1.1.0)
rdiscount (1.6.8)
rubyzip (0.9.9)
selenium-webdriver (2.24.0)

我试图使用类的future / call方法组合,但这对我来说似乎也不起作用。我安装并重新安装了几次,以确保这不是一个环境问题。

我也尝试使用win32-process gem,但这需要我能理解的现有二进制文件,才能被称为子进程。我真的不想诉诸cygwin,但这可能是解决它的唯一方法。

您对此宝石的体验是什么?

1 个答案:

答案 0 :(得分:0)

你不能在Windows中“分叉”,但你可以使用ruby的系统调用之一来调用其他方法:http://en.wikibooks.org/wiki/Ruby_Programming/Running_Multiple_Processes或win32-process或其他一些gem,或直接使用winapi。 / p>