我正在尝试使用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'我确实安装了合适的gem:
*** 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,但这可能是解决这个问题的唯一方法。
你对这块宝石有什么经验?
发布于 2012-07-18 06:43:38
你不能在windows中使用fork,但是你可以使用ruby的系统调用来调用其他方法:http://en.wikibooks.org/wiki/Ruby_Programming/Running_Multiple_Processes或者win32-process或者其他gem,或者winapi直接调用。
https://stackoverflow.com/questions/11531321
复制相似问题