2014-09-07 10:10 GMT+09:00  <nobu / ruby-lang.org>:
> nobu    2014-09-07 10:10:43 +0900 (Sun, 07 Sep 2014)
>
>   New Revision: 47439
>
>   http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=47439
>
>   Log:
>     process.c: vfork may not work with pthread
>
>     * process.c (retry_fork_async_signal_safe): vfork may not work
>       with pthread always even if fork works with it.

この変更ですが、vfork で作った子プロセスの中で pthread が動かないかぎり
vfork を使わないことになっていると思います。
それはコマンドを動かすには不要ですし、そんなことを要求されると
GNU/Linux でも vfork を使えなくなってしまいます。

実際この変更で、vfork を使わなくなってしまいます。

% strace -e vfork,clone ./ruby -e 'system("true")'
clone(child_stack=0x7fb5a6f17ff0,
flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID,
parent_tidptr=0x7fb5a6f189d0, tls=0x7fb5a6f18700,
child_tidptr=0x7fb5a6f189d0) = 20914
clone(child_stack=0,
flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
child_tidptr=0x7fb5a6eee9d0) = 20915
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=20915,
si_uid=1000, si_status=0, si_utime=0, si_stime=0} ---
+++ exited with 0 +++
-- 
[田中 哲][たなか あきら][Tanaka Akira]