Removed code used when NXT_HAVE_POSIX_SPAWN is false.

posix_spawn(3POSIX) was introduced by POSIX.1d
(IEEE Std 1003.1d-1999), and was later consolidated in
POSIX.1-2001, requiring it in all POSIX-compliant systems.
It's safe to assume it's always available, more than 20 years
after its standardization.

Link: <https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/spawn.h.html>
This commit is contained in:
Alejandro Colomar
2022-06-19 14:20:05 +02:00
parent 26a5af8591
commit c8d9106a0d
3 changed files with 0 additions and 65 deletions

View File

@@ -178,21 +178,6 @@ if [ $nxt_found = no ]; then
fi fi
nxt_feature="posix_spawn()"
nxt_feature_name=NXT_HAVE_POSIX_SPAWN
nxt_feature_run=
nxt_feature_incs=
nxt_feature_libs=
nxt_feature_test="#include <spawn.h>
#include <unistd.h>
int main(int argc, char *argv[]) {
(void) posix_spawn(NULL, \"\", NULL, NULL, argv, NULL);
return 0;
}"
. auto/feature
# NetBSD 1.0, OpenBSD 1.0, FreeBSD 2.2 setproctitle(). # NetBSD 1.0, OpenBSD 1.0, FreeBSD 2.2 setproctitle().
nxt_feature="setproctitle()" nxt_feature="setproctitle()"

View File

@@ -798,8 +798,6 @@ nxt_process_send_ready(nxt_task_t *task, nxt_process_t *process)
} }
#if (NXT_HAVE_POSIX_SPAWN)
/* /*
* Linux glibc 2.2 posix_spawn() is implemented via fork()/execve(). * Linux glibc 2.2 posix_spawn() is implemented via fork()/execve().
* Linux glibc 2.4 posix_spawn() without file actions and spawn * Linux glibc 2.4 posix_spawn() without file actions and spawn
@@ -834,52 +832,6 @@ nxt_process_execute(nxt_task_t *task, char *name, char **argv, char **envp)
return pid; return pid;
} }
#else
nxt_pid_t
nxt_process_execute(nxt_task_t *task, char *name, char **argv, char **envp)
{
nxt_pid_t pid;
/*
* vfork() is better than fork() because:
* it is faster several times;
* its execution time does not depend on private memory mapping size;
* it has lesser chances to fail due to the ENOMEM error.
*/
pid = vfork();
switch (pid) {
case -1:
nxt_alert(task, "vfork() failed while executing \"%s\" %E",
name, nxt_errno);
break;
case 0:
/* A child. */
nxt_debug(task, "execve(\"%s\")", name);
(void) execve(name, argv, envp);
nxt_alert(task, "execve(\"%s\") failed %E", name, nxt_errno);
exit(1);
nxt_unreachable();
break;
default:
/* A parent. */
nxt_debug(task, "vfork(): %PI", pid);
break;
}
return pid;
}
#endif
nxt_int_t nxt_int_t
nxt_process_daemon(nxt_task_t *task) nxt_process_daemon(nxt_task_t *task)

View File

@@ -156,9 +156,7 @@
#include <setjmp.h> #include <setjmp.h>
#include <sched.h> #include <sched.h>
#include <signal.h> #include <signal.h>
#if (NXT_HAVE_POSIX_SPAWN)
#include <spawn.h> #include <spawn.h>
#endif
#include <stdarg.h> #include <stdarg.h>
#include <stddef.h> /* offsetof() */ #include <stddef.h> /* offsetof() */
#include <stdio.h> #include <stdio.h>