diff options
author | Rob Landley <rob@landley.net> | 2015-09-23 22:18:22 -0500 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2015-09-23 22:18:22 -0500 |
commit | 847bcb63b541e4fbbfa3dccfe3022745cbe9a06a (patch) | |
tree | 35c6fb8b4bdb11e995a95919abfa682ab7c20221 /toys/other | |
parent | 712e163bb0956b94c27051d0175e719b92f453ad (diff) | |
download | toybox-847bcb63b541e4fbbfa3dccfe3022745cbe9a06a.tar.gz |
Add xvfork() as a static inline and use it from various places.
Note: vfork(), like fork(), can return -1 if too many processes, and
we should notice and fail loudly.
Diffstat (limited to 'toys/other')
-rw-r--r-- | toys/other/setsid.c | 4 | ||||
-rw-r--r-- | toys/other/timeout.c | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/toys/other/setsid.c b/toys/other/setsid.c index 59a1d78f..83db044d 100644 --- a/toys/other/setsid.c +++ b/toys/other/setsid.c @@ -19,9 +19,9 @@ config SETSID void setsid_main(void) { - while (setsid()<0) if (vfork()) _exit(0); + while (setsid()<0) if (xvfork()) _exit(0); if (toys.optflags) { - setpgid(0,0); + setpgid(0, 0); tcsetpgrp(0, getpid()); } xexec(toys.optargs); diff --git a/toys/other/timeout.c b/toys/other/timeout.c index 06b1e89a..bd716e63 100644 --- a/toys/other/timeout.c +++ b/toys/other/timeout.c @@ -62,7 +62,7 @@ void timeout_main(void) if (TT.s_signal && -1 == (TT.nextsig = sig_to_num(TT.s_signal))) error_exit("bad -s: '%s'", TT.s_signal); - if (!(TT.pid = xfork())) xexec(toys.optargs+1); + if (!(TT.pid = xvfork())) xexec(toys.optargs+1); else { int status; |