Unix.fork を呼ぶと fork 前のトップレベルの式が再度実行されてしまう
Unix モジュールの fork 関数を呼ぶと、 fork 前のトップレベルの式が再度実行されてしまいます。 fork 前のコードを fork 後に実行されないようにしたいのですが、どう修正すればよいのでしょうか。
コード:
let () =
Printf.printf "hello, world!\n";
ignore @@ Unix.fork ()
実行結果 (ネイティブコードにコンパイルしての実行です):
hello, world!
hello, world!
実行環境:
- Mac OS X 10.2.5
- OCaml 4.04.2