aboutsummaryrefslogtreecommitdiffstats
path: root/common/exechelp-posix.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/exechelp-posix.c')
-rw-r--r--common/exechelp-posix.c36
1 files changed, 10 insertions, 26 deletions
diff --git a/common/exechelp-posix.c b/common/exechelp-posix.c
index 5479fe3fc..976d0dde5 100644
--- a/common/exechelp-posix.c
+++ b/common/exechelp-posix.c
@@ -35,13 +35,13 @@
#include <unistd.h>
#include <fcntl.h>
-#ifdef WITHOUT_GNU_PTH /* Give the Makefile a chance to build without Pth. */
-#undef HAVE_PTH
-#undef USE_GNU_PTH
+#ifdef WITHOUT_NPTH /* Give the Makefile a chance to build without Pth. */
+#undef HAVE_NPTH
+#undef USE_NPTH
#endif
-#ifdef USE_GNU_PTH
-#include <pth.h>
+#ifdef USE_NPTH
+#include <npth.h>
#endif
#include <sys/wait.h>
@@ -388,11 +388,7 @@ gnupg_spawn_process (const char *pgmname, const char *argv[],
}
-#ifdef USE_GNU_PTH
- *pid = pth_fork? pth_fork () : fork ();
-#else
*pid = fork ();
-#endif
if (*pid == (pid_t)(-1))
{
err = gpg_err_make (errsource, gpg_err_code_from_syserror ());
@@ -454,11 +450,7 @@ gnupg_spawn_process_fd (const char *pgmname, const char *argv[],
{
gpg_error_t err;
-#ifdef USE_GNU_PTH
- *pid = pth_fork? pth_fork () : fork ();
-#else
*pid = fork ();
-#endif
if (*pid == (pid_t)(-1))
{
err = gpg_error_from_syserror ();
@@ -491,16 +483,12 @@ gnupg_wait_process (const char *pgmname, pid_t pid, int hang, int *r_exitcode)
if (pid == (pid_t)(-1))
return gpg_error (GPG_ERR_INV_VALUE);
-#ifdef USE_GNU_PTH
- if (pth_waitpid)
- i = pth_waitpid (pid, &status, hang? 0:WNOHANG);
- else
+#ifdef USE_NPTH
+ i = npth_waitpid (pid, &status, hang? 0:WNOHANG);
+#else
+ while ((i=waitpid (pid, &status, hang? 0:WNOHANG)) == (pid_t)(-1)
+ && errno == EINTR);
#endif
- {
- while ((i=waitpid (pid, &status, hang? 0:WNOHANG)) == (pid_t)(-1)
- && errno == EINTR)
- ;
- }
if (i == (pid_t)(-1))
{
@@ -569,11 +557,7 @@ gnupg_spawn_process_detached (const char *pgmname, const char *argv[],
if (access (pgmname, X_OK))
return gpg_error_from_syserror ();
-#ifdef USE_GNU_PTH
- pid = pth_fork? pth_fork () : fork ();
-#else
pid = fork ();
-#endif
if (pid == (pid_t)(-1))
{
log_error (_("error forking process: %s\n"), strerror (errno));