|
|
@ -1,23 +1,19 @@
|
|
|
|
commit 29cafd35fb2b7cff759fb4c9b84fa4600875321f
|
|
|
|
|
|
|
|
Author: lijunlong <lijunlong@openresty.com>
|
|
|
|
|
|
|
|
Date: Sun Apr 11 14:34:47 2021 +0800
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
feature: added a process exit callback point.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
diff --git a/src/core/ngx_cycle.c b/src/core/ngx_cycle.c
|
|
|
|
diff --git a/src/core/ngx_cycle.c b/src/core/ngx_cycle.c
|
|
|
|
index d7479fa4..c421e43c 100644
|
|
|
|
index c4e3c50..fa1408b 100644
|
|
|
|
--- a/src/core/ngx_cycle.c
|
|
|
|
--- a/src/core/ngx_cycle.c
|
|
|
|
+++ b/src/core/ngx_cycle.c
|
|
|
|
+++ b/src/core/ngx_cycle.c
|
|
|
|
@@ -255,6 +255,7 @@ ngx_init_cycle(ngx_cycle_t *old_cycle)
|
|
|
|
@@ -264,6 +264,9 @@ ngx_init_cycle(ngx_cycle_t *old_cycle)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+#if !(NGX_WIN32)
|
|
|
|
+ ngx_proc_exit_top_handler = ngx_proc_exit_def_handler;
|
|
|
|
+ ngx_proc_exit_top_handler = ngx_proc_exit_def_handler;
|
|
|
|
|
|
|
|
+#endif
|
|
|
|
conf.ctx = cycle->conf_ctx;
|
|
|
|
conf.ctx = cycle->conf_ctx;
|
|
|
|
conf.cycle = cycle;
|
|
|
|
conf.cycle = cycle;
|
|
|
|
conf.pool = pool;
|
|
|
|
conf.pool = pool;
|
|
|
|
diff --git a/src/os/unix/ngx_process.c b/src/os/unix/ngx_process.c
|
|
|
|
diff --git a/src/os/unix/ngx_process.c b/src/os/unix/ngx_process.c
|
|
|
|
index 15680237..9d2e81c5 100644
|
|
|
|
index 12a8c68..874c9bf 100644
|
|
|
|
--- a/src/os/unix/ngx_process.c
|
|
|
|
--- a/src/os/unix/ngx_process.c
|
|
|
|
+++ b/src/os/unix/ngx_process.c
|
|
|
|
+++ b/src/os/unix/ngx_process.c
|
|
|
|
@@ -34,6 +34,7 @@ ngx_int_t ngx_process_slot;
|
|
|
|
@@ -34,6 +34,7 @@ ngx_int_t ngx_process_slot;
|
|
|
@ -42,7 +38,7 @@ index 15680237..9d2e81c5 100644
|
|
|
|
ngx_pid_t
|
|
|
|
ngx_pid_t
|
|
|
|
ngx_spawn_process(ngx_cycle_t *cycle, ngx_spawn_proc_pt proc, void *data,
|
|
|
|
ngx_spawn_process(ngx_cycle_t *cycle, ngx_spawn_proc_pt proc, void *data,
|
|
|
|
char *name, ngx_int_t respawn)
|
|
|
|
char *name, ngx_int_t respawn)
|
|
|
|
@@ -557,6 +565,7 @@ ngx_process_get_status(void)
|
|
|
|
@@ -564,6 +572,7 @@ ngx_process_get_status(void)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ngx_unlock_mutexes(pid);
|
|
|
|
ngx_unlock_mutexes(pid);
|
|
|
@ -51,7 +47,7 @@ index 15680237..9d2e81c5 100644
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
diff --git a/src/os/unix/ngx_process.h b/src/os/unix/ngx_process.h
|
|
|
|
diff --git a/src/os/unix/ngx_process.h b/src/os/unix/ngx_process.h
|
|
|
|
index 3986639b..c5972541 100644
|
|
|
|
index 3986639..0b55d98 100644
|
|
|
|
--- a/src/os/unix/ngx_process.h
|
|
|
|
--- a/src/os/unix/ngx_process.h
|
|
|
|
+++ b/src/os/unix/ngx_process.h
|
|
|
|
+++ b/src/os/unix/ngx_process.h
|
|
|
|
@@ -18,6 +18,8 @@ typedef pid_t ngx_pid_t;
|
|
|
|
@@ -18,6 +18,8 @@ typedef pid_t ngx_pid_t;
|
|
|
@ -63,7 +59,7 @@ index 3986639b..c5972541 100644
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
typedef struct {
|
|
|
|
ngx_pid_t pid;
|
|
|
|
ngx_pid_t pid;
|
|
|
|
@@ -66,6 +67,7 @@ ngx_pid_t ngx_spawn_process(ngx_cycle_t *cycle,
|
|
|
|
@@ -66,6 +68,7 @@ ngx_pid_t ngx_spawn_process(ngx_cycle_t *cycle,
|
|
|
|
ngx_pid_t ngx_execute(ngx_cycle_t *cycle, ngx_exec_ctx_t *ctx);
|
|
|
|
ngx_pid_t ngx_execute(ngx_cycle_t *cycle, ngx_exec_ctx_t *ctx);
|
|
|
|
ngx_int_t ngx_init_signals(ngx_log_t *log);
|
|
|
|
ngx_int_t ngx_init_signals(ngx_log_t *log);
|
|
|
|
void ngx_debug_point(void);
|
|
|
|
void ngx_debug_point(void);
|
|
|
@ -71,7 +67,7 @@ index 3986639b..c5972541 100644
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if (NGX_HAVE_SCHED_YIELD)
|
|
|
|
#if (NGX_HAVE_SCHED_YIELD)
|
|
|
|
@@ -85,6 +87,7 @@ extern ngx_socket_t ngx_channel;
|
|
|
|
@@ -85,6 +88,7 @@ extern ngx_socket_t ngx_channel;
|
|
|
|
extern ngx_int_t ngx_process_slot;
|
|
|
|
extern ngx_int_t ngx_process_slot;
|
|
|
|
extern ngx_int_t ngx_last_process;
|
|
|
|
extern ngx_int_t ngx_last_process;
|
|
|
|
extern ngx_process_t ngx_processes[NGX_MAX_PROCESSES];
|
|
|
|
extern ngx_process_t ngx_processes[NGX_MAX_PROCESSES];
|
|
|
|