diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2018-05-19 02:39:56 +0800 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2018-05-28 17:12:23 +0800 |
commit | e94a964e7dd03d0dd6923d7fc62bc46bd4431189 (patch) | |
tree | 051eb42129c550d4bed1b94ef8dab9d8e8569395 /src/eval.c | |
parent | eval: Replace with listsetvar with mklocal/setvareq (diff) | |
download | dash-e94a964e7dd03d0dd6923d7fc62bc46bd4431189.tar.gz dash-e94a964e7dd03d0dd6923d7fc62bc46bd4431189.zip |
eval: Add vfork support
This patch adds basic vfork support for the case of a simple command. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to '')
-rw-r--r-- | src/eval.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/eval.c b/src/eval.c index 76a209b..c300d0c 100644 --- a/src/eval.c +++ b/src/eval.c @@ -892,10 +892,8 @@ bail: /* Fork off a child process if necessary. */ if (!(flags & EV_EXIT) || have_traps()) { INTOFF; - jp = makejob(cmd, 1); - if (forkshell(jp, cmd, FORK_FG) != 0) - break; - FORCEINTON; + jp = vforkexec(cmd, argv, path, cmdentry.u.index); + break; } shellexec(argv, path, cmdentry.u.index); /* NOTREACHED */ |