diff options
Diffstat (limited to 'src/os/win32/ngx_process.h')
-rw-r--r-- | src/os/win32/ngx_process.h | 65 |
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_ */ |