]> git.kaiwu.me - nginx.git/commitdiff
add NGX_PROCESS_HELPER process status
authorIgor Sysoev <igor@sysoev.ru>
Mon, 23 Nov 2009 15:46:21 +0000 (15:46 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Mon, 23 Nov 2009 15:46:21 +0000 (15:46 +0000)
src/core/ngx_connection.c
src/event/modules/ngx_poll_module.c
src/event/modules/ngx_select_module.c
src/event/modules/ngx_win32_select_module.c
src/os/unix/ngx_process.c
src/os/unix/ngx_process_cycle.c
src/os/unix/ngx_process_cycle.h
src/os/win32/ngx_process.h
src/os/win32/ngx_process_cycle.h

index 3bd9cc6762207bfa5c10c3fe8d2f1ab86ece1749..9a902369956b50615228c26ae31a8323abc799ae 100644 (file)
@@ -634,7 +634,7 @@ ngx_close_listening_sockets(ngx_cycle_t *cycle)
 #if (NGX_HAVE_UNIX_DOMAIN)
 
         if (ls[i].sockaddr->sa_family == AF_UNIX
-            && ngx_process != NGX_PROCESS_WORKER
+            && ngx_process <= NGX_PROCESS_MASTER
             && ngx_new_binary == 0)
         {
             u_char *name = ls[i].addr_text.data + sizeof("unix:") - 1;
index e45942b9113c05deec5402fd90961c63c1dd8086..10098d61e8bc43f1c23adde37675f290661405b2 100644 (file)
@@ -72,7 +72,7 @@ ngx_poll_init(ngx_cycle_t *cycle, ngx_msec_t timer)
         nevents = 0;
     }
 
-    if (ngx_process == NGX_PROCESS_WORKER
+    if (ngx_process >= NGX_PROCESS_WORKER
         || cycle->old_cycle == NULL
         || cycle->old_cycle->connection_n < cycle->connection_n)
     {
index 5d00ecfb97571f9ddd37e9af677d91edb5ae4691..e76da5b9fd82b2de7491b8c68d49bcd77403805d 100644 (file)
@@ -81,7 +81,7 @@ ngx_select_init(ngx_cycle_t *cycle, ngx_msec_t timer)
         nevents = 0;
     }
 
-    if (ngx_process == NGX_PROCESS_WORKER
+    if (ngx_process >= NGX_PROCESS_WORKER
         || cycle->old_cycle == NULL
         || cycle->old_cycle->connection_n < cycle->connection_n)
     {
index bfcc0e2e592948aac3759309d6ad473d3513f3c7..8c22f397ab800caf6642acfeac889a1a54050049 100644 (file)
@@ -82,7 +82,7 @@ ngx_select_init(ngx_cycle_t *cycle, ngx_msec_t timer)
         nevents = 0;
     }
 
-    if (ngx_process == NGX_PROCESS_WORKER
+    if (ngx_process >= NGX_PROCESS_WORKER
         || cycle->old_cycle == NULL
         || cycle->old_cycle->connection_n < cycle->connection_n)
     {
index 48ba9d4db42799a6b37369e0fdecbe573e54795e..f140d629b39569f8a8530fea7f78df70cd1f8874 100644 (file)
@@ -388,6 +388,7 @@ ngx_signal_handler(int signo)
         break;
 
     case NGX_PROCESS_WORKER:
+    case NGX_PROCESS_HELPER:
         switch (signo) {
 
         case ngx_signal_value(NGX_NOACCEPT_SIGNAL):
index e203ea3c98da95769ed66fa611a2a9ec3d13ceb6..06e020e06a15cddbd64424b0defc3d42b684f6c1 100644 (file)
@@ -714,6 +714,8 @@ ngx_worker_process_cycle(ngx_cycle_t *cycle, void *data)
     ngx_uint_t         i;
     ngx_connection_t  *c;
 
+    ngx_process = NGX_PROCESS_WORKER;
+
     ngx_worker_process_init(cycle, 1);
 
     ngx_setproctitle("worker process");
@@ -829,8 +831,6 @@ ngx_worker_process_init(ngx_cycle_t *cycle, ngx_uint_t priority)
     ngx_core_conf_t  *ccf;
     ngx_listening_t  *ls;
 
-    ngx_process = NGX_PROCESS_WORKER;
-
     if (ngx_set_environment(cycle, NULL) == NULL) {
         /* fatal */
         exit(2);
@@ -1289,6 +1289,8 @@ ngx_cache_manager_process_cycle(ngx_cycle_t *cycle, void *data)
 
     cycle->connection_n = 512;
 
+    ngx_process = NGX_PROCESS_HELPER;
+
     ngx_worker_process_init(cycle, 0);
 
     ngx_close_listening_sockets(cycle);
index f46ad463fa697d01c0a1dbae7f2480c9545198be..e6cef6b3f96db106d2e82709cbb7f77cee4147e9 100644 (file)
@@ -21,8 +21,9 @@
 
 #define NGX_PROCESS_SINGLE     0
 #define NGX_PROCESS_MASTER     1
-#define NGX_PROCESS_WORKER     2
-#define NGX_PROCESS_SIGNALLER  3
+#define NGX_PROCESS_SIGNALLER  2
+#define NGX_PROCESS_WORKER     3
+#define NGX_PROCESS_HELPER     4
 
 
 typedef struct {
index edcde3918e71b71689b5c7eee7f7fcde82ec408f..55f5648ee7a21f84ecf1694a1ff6729e4547b6b8 100644 (file)
@@ -48,11 +48,6 @@ typedef struct {
 } ngx_exec_ctx_t;
 
 
-#define NGX_PROCESS_SINGLE  0
-#define NGX_PROCESS_MASTER  1
-#define NGX_PROCESS_WORKER  2
-
-
 ngx_pid_t ngx_spawn_process(ngx_cycle_t *cycle, char *name, ngx_int_t respawn);
 ngx_pid_t ngx_execute(ngx_cycle_t *cycle, ngx_exec_ctx_t *ctx);
 
index cd5f01199501976436333dce9b2a433fe5e11d91..aaa4ba38381fe9cf14d33e8acad3f0e22088fb67 100644 (file)
@@ -14,8 +14,8 @@
 
 #define NGX_PROCESS_SINGLE     0
 #define NGX_PROCESS_MASTER     1
-#define NGX_PROCESS_WORKER     2
-#define NGX_PROCESS_SIGNALLER  3
+#define NGX_PROCESS_SIGNALLER  2
+#define NGX_PROCESS_WORKER     3
 
 
 void ngx_master_process_cycle(ngx_cycle_t *cycle);