From 58d60c3333b988feb72eb867332d9ad773957810 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Tue, 1 Jul 2008 11:11:24 +0000 Subject: *: introduce and use xfork() function old new delta xfork - 20 +20 msh_main 1377 1380 +3 mod_process 455 446 -9 forkexit_or_rexec 30 17 -13 expand_variables 1434 1421 -13 open_transformer 91 76 -15 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 1/4 up/down: 23/-50) Total: -27 bytes --- libbb/vfork_daemon_rexec.c | 4 +--- libbb/xvfork.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'libbb') diff --git a/libbb/vfork_daemon_rexec.c b/libbb/vfork_daemon_rexec.c index 9baa813a1..989e9b841 100644 --- a/libbb/vfork_daemon_rexec.c +++ b/libbb/vfork_daemon_rexec.c @@ -238,9 +238,7 @@ void FAST_FUNC forkexit_or_rexec(char **argv) void FAST_FUNC forkexit_or_rexec(void) { pid_t pid; - pid = fork(); - if (pid < 0) /* wtf? */ - bb_perror_msg_and_die("fork"); + pid = xfork(); if (pid) /* parent */ exit(EXIT_SUCCESS); /* child */ diff --git a/libbb/xvfork.c b/libbb/xvfork.c index a74b49f48..3fbd0c1ed 100644 --- a/libbb/xvfork.c +++ b/libbb/xvfork.c @@ -16,3 +16,13 @@ pid_t FAST_FUNC xvfork(void) bb_perror_msg_and_die("vfork"); return pid; } + +#if BB_MMU +pid_t FAST_FUNC xfork(void) +{ + pid_t pid = fork(); + if (pid < 0) + bb_perror_msg_and_die("vfork" + 1); + return pid; +} +#endif -- cgit v1.2.3