2009-11-29 10 views

答えて

7

fork(2)は、Windowsプロセスモデルでは容易に起こらないため、Cygwinの下では不快です。 Cygwinはそれを使うことができるかもしれませんが、実行可能なデータのコピー、開いているハンドルのコピーなど、Cygwinがすべてを手作業でエミュレートしなければならないので、重大なパフォーマンスが低下します。

たくさんの散弾銃はfork(2)を使用していますが、このエミュレーションは痛いかもしれません。

good thread on GameDev.netは、Win32でfork機能の欠如について議論しています。彼らは私が調査するの忍耐やプラットフォームのアクセシビリティを持っていない何かを持って、しかし確かにすべて同時に楽しさ、危険、および爆発の音:

だから、あなたは、Win32をバイパスし、ネイティブを呼び出す必要がありますAPI({Nt | Zw} CreateProcess)。 「Windows Nt/2000ネイティブApiリファレンス」という本には、「Win32プロセスをフォークする」という例があります。これはあなたが必要とするものかもしれません。

私は興味がありますが、私はCygwinがそれを使用するのか疑問です。おそらくあなたの質問に対する私の答えを繰り返すために、おそらくそこにあるでしょう。多くのUnixアプリはforkに依存しており、Cygwinはそれを利用可能にしている可能性があります。奇跡を期待してはいけません。RubyにCygwinをエミュレーションレイヤーを含むように再コンパイルすることで認識させる必要があります。

+0

私は明日CygwinエミュレーションレイヤーでRubyを再コンパイルしようとします。それがうまくいくなら、それは素晴らしいでしょう。いくつかのパフォーマンスヒットはOKです。もう一つのパスは危険に晒され、ハッキングがたくさん必要になるかもしれませんが、可能なことを知ることは良いことです。どうもありがとう! – picardo

関連する問題