From 50f5124ad73585d9978ad3df980fe49178afab4b Mon Sep 17 00:00:00 2001 From: Ciaran McCreesh Date: Thu, 16 Dec 2010 15:34:47 +0000 Subject: Show fork errors --- paludis/util/process.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/paludis/util/process.cc b/paludis/util/process.cc index 63366ef24..0e00723fb 100644 --- a/paludis/util/process.cc +++ b/paludis/util/process.cc @@ -34,6 +34,7 @@ #include #include #include +#include #include #include @@ -601,7 +602,7 @@ Process::run() pid_t child(fork()); if (-1 == child) - throw ProcessError("fork() failed"); + throw ProcessError("fork() failed: " + stringify(::strerror(errno))); else if ((0 == child) ^ _imp->as_main_process) { try @@ -756,7 +757,10 @@ Process::run() act.sa_flags = 0; sigaction(SIGCLD, &act, 0); - if (0 != fork()) + pid_t p(fork()); + if (-1 == p) + throw ProcessError("fork() failed: " + stringify(::strerror(errno))); + else if (0 != p) _exit(0); } -- cgit v1.2.3