0

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プロセスのgemを使用して作業しようとしましたが、これには、サブプロセスと呼ばれる、理解できる既存のバイナリが必要です。私は本当にcygwinに頼りたくありませんが、それがそれに対処する唯一の方法かもしれません。

この宝石でのあなたの経験は何ですか?

4

1 に答える 1

0

Windowsでそれ自体を「フォーク」することはできませんが、rubyのシステムコールの1つを使用して他のメソッドを呼び出すことができます:http://en.wikibooks.org/wiki/Ruby_Programming/Running_Multiple_Processesまたはwin32-processまたはその他のgem 、または直接winapi。

于 2012-07-17T22:43:37.883 に答える