summaryrefslogtreecommitdiff
path: root/src/gw_backend.c
diff options
context:
space:
mode:
authorGlenn Strauss <gstrauss@gluelogic.com>2020-11-26 14:58:35 -0500
committerGlenn Strauss <gstrauss@gluelogic.com>2023-05-03 23:11:34 -0400
commit8acf2ae5e62269c33e4f6cc205d025de278924ae (patch)
treeb30cae5c6dee12e3e50a22cb6973cffac474d92a /src/gw_backend.c
parentaf68a4db08b70d5f4c918fbe0a871159daf72e6b (diff)
downloadlighttpd-git-8acf2ae5e62269c33e4f6cc205d025de278924ae.tar.gz
[multiple] _WIN32 protect code w/ HAVE_FORK
wrap fork() and kill()
Diffstat (limited to 'src/gw_backend.c')
-rw-r--r--src/gw_backend.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gw_backend.c b/src/gw_backend.c
index cb563ce3..6a7e0545 100644
--- a/src/gw_backend.c
+++ b/src/gw_backend.c
@@ -723,7 +723,9 @@ static void gw_proc_kill(gw_host *host, gw_proc *proc) {
host->unused_procs->prev = proc;
host->unused_procs = proc;
+ #ifdef HAVE_FORK
kill(proc->pid, host->kill_signal);
+ #endif
gw_proc_set_state(host, proc, PROC_STATE_KILLED);
}
@@ -1003,10 +1005,12 @@ static void gw_restart_dead_proc(gw_host * const host, log_error_st * const errh
break;
case PROC_STATE_KILLED:
if (trigger && ++proc->disabled_until > 4) {
+ #ifdef HAVE_FORK
int sig = (proc->disabled_until <= 8)
? host->kill_signal
: proc->disabled_until <= 16 ? SIGTERM : SIGKILL;
kill(proc->pid, sig);
+ #endif
}
break;
case PROC_STATE_DIED_WAIT_FOR_PID:
@@ -1159,7 +1163,9 @@ void gw_plugin_config_free(gw_plugin_config *s) {
for (proc = host->first; proc; proc = proc->next) {
if (proc->pid > 0) {
+ #ifdef HAVE_FORK
kill(proc->pid, host->kill_signal);
+ #endif
}
if (proc->is_local && proc->unixsocket) {
@@ -1169,7 +1175,9 @@ void gw_plugin_config_free(gw_plugin_config *s) {
for (proc = host->unused_procs; proc; proc = proc->next) {
if (proc->pid > 0) {
+ #ifdef HAVE_FORK
kill(proc->pid, host->kill_signal);
+ #endif
}
if (proc->is_local && proc->unixsocket) {
unlink(proc->unixsocket->ptr);