annotate src/os/win32/ngx_process.h @ 3016:d82993af1da0

introduce NGX_PROCESS_JUST_SPAWN and change field name accordingly
author Igor Sysoev <igor@sysoev.ru>
date Mon, 10 Aug 2009 13:07:15 +0000
parents 1983932b8075
children f94e8ff65aa2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
441
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
1
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
2 /*
444
42d11f017717 nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents: 441
diff changeset
3 * Copyright (C) Igor Sysoev
441
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
4 */
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
5
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 374
diff changeset
6
36
c14d7232b11f nginx-0.0.1-2002-12-23-09:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
7 #ifndef _NGX_PROCESS_H_INCLUDED_
c14d7232b11f nginx-0.0.1-2002-12-23-09:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8 #define _NGX_PROCESS_H_INCLUDED_
c14d7232b11f nginx-0.0.1-2002-12-23-09:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
9
c14d7232b11f nginx-0.0.1-2002-12-23-09:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10
2725
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
11 typedef DWORD ngx_pid_t;
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
12 #define NGX_INVALID_PID 0
543
511a89da35ad nginx-0.2.0-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
13
278
0ba4821f4460 nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 36
diff changeset
14
2725
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
15 #define ngx_getpid GetCurrentProcessId
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
16 #define ngx_log_pid ngx_pid
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
17
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
18
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
19 #define NGX_PROCESS_SYNC_NAME \
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
20 (sizeof("ngx_cache_manager_mutex_") + NGX_INT32_LEN)
278
0ba4821f4460 nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 36
diff changeset
21
0ba4821f4460 nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 36
diff changeset
22
0ba4821f4460 nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 36
diff changeset
23 typedef struct {
2725
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
24 HANDLE handle;
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
25 ngx_pid_t pid;
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
26 char *name;
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
27
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
28 HANDLE term;
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
29 HANDLE quit;
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
30 HANDLE reopen;
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
31
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
32 u_char term_event[NGX_PROCESS_SYNC_NAME];
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
33 u_char quit_event[NGX_PROCESS_SYNC_NAME];
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
34 u_char reopen_event[NGX_PROCESS_SYNC_NAME];
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
35
3016
d82993af1da0 introduce NGX_PROCESS_JUST_SPAWN and change field name accordingly
Igor Sysoev <igor@sysoev.ru>
parents: 2745
diff changeset
36 unsigned just_spawn:1;
2725
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
37 unsigned exiting:1;
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
38 } ngx_process_t;
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
39
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
40
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
41 typedef struct {
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
42 char *path;
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
43 char *name;
2745
1983932b8075 pass command lines options to workers
Igor Sysoev <igor@sysoev.ru>
parents: 2725
diff changeset
44 char *args;
2725
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
45 char *const *argv;
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
46 char *const *envp;
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
47 HANDLE child;
278
0ba4821f4460 nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 36
diff changeset
48 } ngx_exec_ctx_t;
0ba4821f4460 nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 36
diff changeset
49
0ba4821f4460 nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 36
diff changeset
50
2725
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
51 #define NGX_PROCESS_SINGLE 0
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
52 #define NGX_PROCESS_MASTER 1
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
53 #define NGX_PROCESS_WORKER 2
278
0ba4821f4460 nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 36
diff changeset
54
0ba4821f4460 nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 36
diff changeset
55
2725
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
56 ngx_pid_t ngx_spawn_process(ngx_cycle_t *cycle, char *name, ngx_int_t respawn);
279
b79f021a644a nginx-0.0.2-2004-03-04-19:34:23 import
Igor Sysoev <igor@sysoev.ru>
parents: 278
diff changeset
57 ngx_pid_t ngx_execute(ngx_cycle_t *cycle, ngx_exec_ctx_t *ctx);
278
0ba4821f4460 nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 36
diff changeset
58
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 452
diff changeset
59 #define ngx_debug_point()
2725
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
60 #define ngx_sched_yield() Sleep(0)
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
61
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
62
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
63 #define NGX_MAX_PROCESSES (MAXIMUM_WAIT_OBJECTS - 4)
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
64
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
65 #define NGX_PROCESS_RESPAWN -2
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
66 #define NGX_PROCESS_JUST_RESPAWN -3
373
018569a8f09c nginx-0.0.7-2004-06-30-19:30:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 279
diff changeset
67
018569a8f09c nginx-0.0.7-2004-06-30-19:30:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 279
diff changeset
68
2725
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
69 extern int ngx_argc;
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
70 extern char **ngx_argv;
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
71 extern char **ngx_os_argv;
278
0ba4821f4460 nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 36
diff changeset
72
2725
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
73 extern ngx_int_t ngx_last_process;
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
74 extern ngx_process_t ngx_processes[NGX_MAX_PROCESSES];
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
75
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
76 extern ngx_pid_t ngx_pid;
36
c14d7232b11f nginx-0.0.1-2002-12-23-09:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
77
c14d7232b11f nginx-0.0.1-2002-12-23-09:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
78
c14d7232b11f nginx-0.0.1-2002-12-23-09:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
79 #endif /* _NGX_PROCESS_H_INCLUDED_ */