*: introduce and use xvfork()

function                                             old     new   delta
time_main                                           1052    1285    +233
crontab_main                                         623     856    +233
ifupdown_main                                       2202    2403    +201
xvfork                                                 -      20     +20
passwd_main                                         1049    1053      +4
grave                                               1068    1066      -2
script_main                                          935     921     -14
vfork_or_die                                          20       -     -20
vfork_compressor                                     206     175     -31
open_as_user                                         109       -    -109
popen2                                               218       -    -218
edit_file                                            910     690    -220
run_command                                          268       -    -268
------------------------------------------------------------------------------
(add/remove: 1/4 grow/shrink: 4/4 up/down: 691/-882)         Total: -191 bytes
This commit is contained in:
Denis Vlasenko
2008-07-01 10:40:41 +00:00
parent 148f67af9d
commit 3da5572bfa
12 changed files with 18 additions and 42 deletions

View File

@ -3096,9 +3096,11 @@ static FILE *generate_stream_from_list(struct pipe *head)
* huge=`cat TESTFILE` # will block here forever
* echo OK
*/
pid = BB_MMU ? fork() : vfork();
pid = BB_MMU ? fork() : xvfork();
#if BB_MMU
if (pid < 0)
bb_perror_msg_and_die(BB_MMU ? "fork" : "vfork");
bb_perror_msg_and_die("fork");
#endif
if (pid == 0) { /* child */
if (ENABLE_HUSH_JOB)
die_sleep = 0; /* let nofork's xfuncs die */