aboutsummaryrefslogtreecommitdiff
path: root/src/os/win32/ngx_process.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/os/win32/ngx_process.h')
-rw-r--r--src/os/win32/ngx_process.h65
1 files changed, 49 insertions, 16 deletions
diff --git a/src/os/win32/ngx_process.h b/src/os/win32/ngx_process.h
index bd282b217..49eef785c 100644
--- a/src/os/win32/ngx_process.h
+++ b/src/os/win32/ngx_process.h
@@ -8,38 +8,71 @@
#define _NGX_PROCESS_H_INCLUDED_
-typedef DWORD ngx_pid_t;
-#define NGX_INVALID_PID 0
+typedef DWORD ngx_pid_t;
+#define NGX_INVALID_PID 0
-#define ngx_getpid GetCurrentProcessId
-#define ngx_log_pid ngx_pid
+#define ngx_getpid GetCurrentProcessId
+#define ngx_log_pid ngx_pid
+
+
+#define NGX_PROCESS_SYNC_NAME \
+ (sizeof("ngx_cache_manager_mutex_") + NGX_INT32_LEN)
+
+
+typedef struct {
+ HANDLE handle;
+ ngx_pid_t pid;
+ char *name;
+
+ HANDLE term;
+ HANDLE quit;
+ HANDLE reopen;
+
+ u_char term_event[NGX_PROCESS_SYNC_NAME];
+ u_char quit_event[NGX_PROCESS_SYNC_NAME];
+ u_char reopen_event[NGX_PROCESS_SYNC_NAME];
+
+ unsigned just_respawn:1;
+ unsigned exiting:1;
+} ngx_process_t;
typedef struct {
- char *path;
- char *name;
- char *const *argv;
- char *const *envp;
+ char *path;
+ char *name;
+ char *const *argv;
+ char *const *envp;
+ HANDLE child;
} ngx_exec_ctx_t;
-#define NGX_PROCESS_SINGLE 0
-#define NGX_PROCESS_MASTER 1
-#define NGX_PROCESS_WORKER 2
+#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);
#define ngx_debug_point()
-#define ngx_sched_yield() Sleep(0)
+#define ngx_sched_yield() Sleep(0)
+
+
+#define NGX_MAX_PROCESSES (MAXIMUM_WAIT_OBJECTS - 4)
+
+#define NGX_PROCESS_RESPAWN -2
+#define NGX_PROCESS_JUST_RESPAWN -3
+
+extern int ngx_argc;
+extern char **ngx_argv;
+extern char **ngx_os_argv;
-extern int ngx_argc;
-extern char **ngx_argv;
-extern char **ngx_os_argv;
+extern ngx_int_t ngx_last_process;
+extern ngx_process_t ngx_processes[NGX_MAX_PROCESSES];
-extern ngx_pid_t ngx_pid;
+extern ngx_pid_t ngx_pid;
#endif /* _NGX_PROCESS_H_INCLUDED_ */