annotate src/os/win32/ngx_process.h @ 4448:539355d9e675 stable-1.0

Merge of r4404: Fixed sched_setaffinity(2) to correctly pass size. Second argument (cpusetsize) is size in bytes, not in bits. Previously used constant 32 resulted in reading of uninitialized memory and caused EINVAL to be returned on some Linux kernels.
author Maxim Dounin <mdounin@mdounin.ru>
date Sun, 05 Feb 2012 19:25:24 +0000
parents 3f04918aefe5
children d620f497c50f
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 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
52 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
53
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 452
diff changeset
54 #define ngx_debug_point()
3852
3f04918aefe5 use SwitchToThread() instead of Sleep(0), because the later
Igor Sysoev <igor@sysoev.ru>
parents: 3358
diff changeset
55 #define ngx_sched_yield() SwitchToThread()
2725
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
56
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
57
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
58 #define NGX_MAX_PROCESSES (MAXIMUM_WAIT_OBJECTS - 4)
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
59
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
60 #define NGX_PROCESS_RESPAWN -2
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
61 #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
62
018569a8f09c nginx-0.0.7-2004-06-30-19:30:41 import
Igor Sysoev <igor@sysoev.ru>
parents: 279
diff changeset
63
2725
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
64 extern int ngx_argc;
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
65 extern char **ngx_argv;
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
66 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
67
2725
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
68 extern ngx_int_t ngx_last_process;
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
69 extern ngx_process_t ngx_processes[NGX_MAX_PROCESSES];
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
70
d43d73277c5c Win32 master/workers model
Igor Sysoev <igor@sysoev.ru>
parents: 543
diff changeset
71 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
72
c14d7232b11f nginx-0.0.1-2002-12-23-09:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
73
c14d7232b11f nginx-0.0.1-2002-12-23-09:29:22 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
74 #endif /* _NGX_PROCESS_H_INCLUDED_ */