Mercurial > hg > nginx-quic
comparison src/os/win32/ngx_process.h @ 2725:d43d73277c5c
Win32 master/workers model
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 20 Apr 2009 06:08:47 +0000 |
parents | 511a89da35ad |
children | 1983932b8075 |
comparison
equal
deleted
inserted
replaced
2724:9fd2f12fee0a | 2725:d43d73277c5c |
---|---|
6 | 6 |
7 #ifndef _NGX_PROCESS_H_INCLUDED_ | 7 #ifndef _NGX_PROCESS_H_INCLUDED_ |
8 #define _NGX_PROCESS_H_INCLUDED_ | 8 #define _NGX_PROCESS_H_INCLUDED_ |
9 | 9 |
10 | 10 |
11 typedef DWORD ngx_pid_t; | 11 typedef DWORD ngx_pid_t; |
12 #define NGX_INVALID_PID 0 | 12 #define NGX_INVALID_PID 0 |
13 | 13 |
14 | 14 |
15 #define ngx_getpid GetCurrentProcessId | 15 #define ngx_getpid GetCurrentProcessId |
16 #define ngx_log_pid ngx_pid | 16 #define ngx_log_pid ngx_pid |
17 | |
18 | |
19 #define NGX_PROCESS_SYNC_NAME \ | |
20 (sizeof("ngx_cache_manager_mutex_") + NGX_INT32_LEN) | |
17 | 21 |
18 | 22 |
19 typedef struct { | 23 typedef struct { |
20 char *path; | 24 HANDLE handle; |
21 char *name; | 25 ngx_pid_t pid; |
22 char *const *argv; | 26 char *name; |
23 char *const *envp; | 27 |
28 HANDLE term; | |
29 HANDLE quit; | |
30 HANDLE reopen; | |
31 | |
32 u_char term_event[NGX_PROCESS_SYNC_NAME]; | |
33 u_char quit_event[NGX_PROCESS_SYNC_NAME]; | |
34 u_char reopen_event[NGX_PROCESS_SYNC_NAME]; | |
35 | |
36 unsigned just_respawn:1; | |
37 unsigned exiting:1; | |
38 } ngx_process_t; | |
39 | |
40 | |
41 typedef struct { | |
42 char *path; | |
43 char *name; | |
44 char *const *argv; | |
45 char *const *envp; | |
46 HANDLE child; | |
24 } ngx_exec_ctx_t; | 47 } ngx_exec_ctx_t; |
25 | 48 |
26 | 49 |
27 #define NGX_PROCESS_SINGLE 0 | 50 #define NGX_PROCESS_SINGLE 0 |
28 #define NGX_PROCESS_MASTER 1 | 51 #define NGX_PROCESS_MASTER 1 |
29 #define NGX_PROCESS_WORKER 2 | 52 #define NGX_PROCESS_WORKER 2 |
30 | 53 |
31 | 54 |
55 ngx_pid_t ngx_spawn_process(ngx_cycle_t *cycle, char *name, ngx_int_t respawn); | |
32 ngx_pid_t ngx_execute(ngx_cycle_t *cycle, ngx_exec_ctx_t *ctx); | 56 ngx_pid_t ngx_execute(ngx_cycle_t *cycle, ngx_exec_ctx_t *ctx); |
33 | 57 |
34 #define ngx_debug_point() | 58 #define ngx_debug_point() |
35 #define ngx_sched_yield() Sleep(0) | 59 #define ngx_sched_yield() Sleep(0) |
36 | 60 |
37 | 61 |
38 extern int ngx_argc; | 62 #define NGX_MAX_PROCESSES (MAXIMUM_WAIT_OBJECTS - 4) |
39 extern char **ngx_argv; | |
40 extern char **ngx_os_argv; | |
41 | 63 |
42 extern ngx_pid_t ngx_pid; | 64 #define NGX_PROCESS_RESPAWN -2 |
65 #define NGX_PROCESS_JUST_RESPAWN -3 | |
66 | |
67 | |
68 extern int ngx_argc; | |
69 extern char **ngx_argv; | |
70 extern char **ngx_os_argv; | |
71 | |
72 extern ngx_int_t ngx_last_process; | |
73 extern ngx_process_t ngx_processes[NGX_MAX_PROCESSES]; | |
74 | |
75 extern ngx_pid_t ngx_pid; | |
43 | 76 |
44 | 77 |
45 #endif /* _NGX_PROCESS_H_INCLUDED_ */ | 78 #endif /* _NGX_PROCESS_H_INCLUDED_ */ |