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_ */