summary refs log tree commit diff
path: root/src/error.c
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2018-05-19 02:39:56 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2018-05-28 17:12:23 +0800
commite94a964e7dd03d0dd6923d7fc62bc46bd4431189 (patch)
tree051eb42129c550d4bed1b94ef8dab9d8e8569395 /src/error.c
parenteval: Replace with listsetvar with mklocal/setvareq (diff)
downloaddash-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 'src/error.c')
-rw-r--r--src/error.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/error.c b/src/error.c
index f9ea919..728ff88 100644
--- a/src/error.c
+++ b/src/error.c
@@ -43,6 +43,7 @@
 #include <stdio.h>
 #include <string.h>
 
+#include "jobs.h"
 #include "shell.h"
 #include "main.h"
 #include "options.h"
@@ -81,6 +82,10 @@ exraise(int e)
 	if (handler == NULL)
 		abort();
 #endif
+
+	if (vforked)
+		_exit(exitstatus);
+
 	INTOFF;
 
 	exception = e;