annotate src/event/modules/ngx_iocp_module.c @ 144:ef8c87afcfc5

nginx-0.0.1-2003-10-12-20:49:16 import
author Igor Sysoev <igor@sysoev.ru>
date Sun, 12 Oct 2003 16:49:16 +0000
parents ac69ab96328d
children a8ff48d26cca
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
1
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
2 /*
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
3 * Copyright (C) 2002-2003 Igor Sysoev, http://sysoev.ru
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
4 */
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
5
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
6
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
7 #include <ngx_config.h>
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
8 #include <ngx_core.h>
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
9 #include <ngx_event.h>
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
10 #include <ngx_iocp_module.h>
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
11
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
12
114
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
13 static int ngx_iocp_init(ngx_cycle_t *cycle);
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
14 static void ngx_iocp_done(ngx_cycle_t *cycle);
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
15 static int ngx_iocp_add_event(ngx_event_t *ev, int event, u_int key);
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
16 static int ngx_iocp_del_connection(ngx_connection_t *c);
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
17 static int ngx_iocp_process_events(ngx_log_t *log);
114
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
18 static void *ngx_iocp_create_conf(ngx_cycle_t *cycle);
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
19 static char *ngx_iocp_init_conf(ngx_cycle_t *cycle, void *conf);
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
20
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
21
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
22 static ngx_str_t iocp_name = ngx_string("iocp");
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
23
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
24 static ngx_command_t ngx_iocp_commands[] = {
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
25
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
26 {ngx_string("iocp_threads"),
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
27 NGX_EVENT_CONF|NGX_CONF_TAKE1,
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
28 ngx_conf_set_num_slot,
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
29 0,
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
30 offsetof(ngx_iocp_conf_t, threads),
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
31 NULL},
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
32
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
33 {ngx_string("acceptex"),
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
34 NGX_EVENT_CONF|NGX_CONF_TAKE1,
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
35 ngx_conf_set_num_slot,
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
36 0,
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
37 offsetof(ngx_iocp_conf_t, acceptex),
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
38 NULL},
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
39
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
40 {ngx_string("acceptex_read"),
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
41 NGX_EVENT_CONF|NGX_CONF_TAKE1,
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
42 ngx_conf_set_flag_slot,
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
43 0,
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
44 offsetof(ngx_iocp_conf_t, acceptex_read),
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
45 NULL},
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
46
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
47 ngx_null_command
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
48 };
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
49
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
50
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
51 ngx_event_module_t ngx_iocp_module_ctx = {
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
52 &iocp_name,
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
53 ngx_iocp_create_conf, /* create configuration */
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
54 ngx_iocp_init_conf, /* init configuration */
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
55
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
56 {
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
57 ngx_iocp_add_event, /* add an event */
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
58 NULL, /* delete an event */
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
59 NULL, /* enable an event */
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
60 NULL, /* disable an event */
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
61 NULL, /* add an connection */
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
62 ngx_iocp_del_connection, /* delete an connection */
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
63 ngx_iocp_process_events, /* process the events */
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
64 ngx_iocp_init, /* init the events */
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
65 ngx_iocp_done /* done the events */
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
66 }
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
67
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
68 };
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
69
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
70 ngx_module_t ngx_iocp_module = {
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
71 NGX_MODULE,
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
72 &ngx_iocp_module_ctx, /* module context */
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
73 ngx_iocp_commands, /* module directives */
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
74 NGX_EVENT_MODULE, /* module type */
114
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
75 NULL, /* init module */
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
76 NULL /* init child */
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
77 };
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
78
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
79
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
80 static HANDLE iocp;
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
81
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
82
114
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
83 static int ngx_iocp_init(ngx_cycle_t *cycle)
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
84 {
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
85 ngx_iocp_conf_t *cf;
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
86
114
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
87 cf = ngx_event_get_conf(cycle->conf_ctx, ngx_iocp_module);
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
88
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
89 if (iocp == NULL) {
114
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
90 iocp = CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, 0,
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
91 cf->threads);
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
92 }
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
93
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
94 if (iocp == NULL) {
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
95 ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno,
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
96 "CreateIoCompletionPort() failed");
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
97 return NGX_ERROR;
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
98 }
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
99
114
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
100 if (ngx_event_timer_init(cycle) == NGX_ERROR) {
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
101 return NGX_ERROR;
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
102 }
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
103
114
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
104 ngx_io = ngx_os_io;
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
105
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
106 ngx_event_actions = ngx_iocp_module_ctx.actions;
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
107
144
ef8c87afcfc5 nginx-0.0.1-2003-10-12-20:49:16 import
Igor Sysoev <igor@sysoev.ru>
parents: 114
diff changeset
108 ngx_event_flags = NGX_USE_AIO_EVENT|NGX_USE_IOCP_EVENT;
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
109
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
110 return NGX_OK;
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
111 }
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
112
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
113
114
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
114 static void ngx_iocp_done(ngx_cycle_t *cycle)
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
115 {
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
116 if (CloseHandle(iocp) == -1) {
114
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
117 ngx_log_error(NGX_LOG_ALERT, cycle->log, ngx_errno,
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
118 "iocp CloseHandle() failed");
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
119 }
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
120
114
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
121 iocp = NULL;
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
122
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
123 ngx_event_timer_done(cycle);
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
124 }
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
125
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
126
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
127 static int ngx_iocp_add_event(ngx_event_t *ev, int event, u_int key)
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
128 {
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
129 ngx_connection_t *c;
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
130
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
131 c = (ngx_connection_t *) ev->data;
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
132
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
133 c->read->active = 1;
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
134 c->write->active = 1;
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
135
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
136 ngx_log_debug(ev->log, "iocp add: %d, %d:%08x" _ c->fd _ key _ &ev->ovlp);
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
137
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
138 if (CreateIoCompletionPort((HANDLE) c->fd, iocp, key, 0) == NULL) {
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
139 ngx_log_error(NGX_LOG_ALERT, c->log, ngx_errno,
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
140 "CreateIoCompletionPort() failed");
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
141 return NGX_ERROR;
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
142 }
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
143
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
144 return NGX_OK;
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
145 }
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
146
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
147
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
148 static int ngx_iocp_del_connection(ngx_connection_t *c)
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
149 {
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
150 if (CancelIo((HANDLE) c->fd) == 0) {
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
151 ngx_log_error(NGX_LOG_ALERT, c->log, ngx_errno, "CancelIo() failed");
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
152 return NGX_ERROR;
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
153 }
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
154
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
155 return NGX_OK;
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
156 }
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
157
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
158
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
159 static int ngx_iocp_process_events(ngx_log_t *log)
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
160 {
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
161 int rc;
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
162 u_int key;
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
163 size_t bytes;
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
164 ngx_err_t err;
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
165 ngx_msec_t timer, delta;
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
166 ngx_event_t *ev;
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
167 ngx_event_ovlp_t *ovlp;
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
168
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
169 timer = ngx_event_find_timer();
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
170
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
171 if (timer) {
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
172 delta = ngx_msec();
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
173
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
174 } else {
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
175 timer = INFINITE;
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
176 delta = 0;
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
177 }
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
178
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
179 ngx_log_debug(log, "iocp timer: %d" _ timer);
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
180
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
181 rc = GetQueuedCompletionStatus(iocp, &bytes, (LPDWORD) &key,
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
182 (LPOVERLAPPED *) &ovlp, timer);
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
183
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
184 ngx_log_debug(log, "iocp: %d, %d, %d:%08x" _ rc _ bytes _ key _ ovlp);
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
185
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
186 if (rc == 0) {
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
187 err = ngx_errno;
114
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
188 } else {
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
189 err = 0;
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
190 }
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
191
114
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
192 if (timer != INFINITE) {
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
193 delta = ngx_msec() - delta;
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
194 ngx_event_expire_timers(delta);
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
195 }
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
196
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
197 if (err) {
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
198 if (ovlp == NULL) {
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
199 if (err != WAIT_TIMEOUT) {
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
200 ngx_log_error(NGX_LOG_ALERT, log, err,
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
201 "GetQueuedCompletionStatus() failed");
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
202
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
203 return NGX_ERROR;
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
204 }
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
205
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
206 } else {
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
207 ovlp->error = err;
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
208 }
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
209 }
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
210
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
211 if (ovlp) {
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
212 ev = ovlp->event;
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
213
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
214 ngx_log_debug(log, "iocp ev: %08x" _ ev);
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
215
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
216 switch (key) {
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
217 case NGX_IOCP_IO:
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
218 ev->ready = 1;
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
219 break;
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
220
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
221 case NGX_IOCP_ACCEPT:
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
222 if (bytes) {
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
223 ev->ready = 1;
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
224 }
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
225 break;
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
226 }
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
227
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
228 ev->available = bytes;
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
229
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
230 ngx_log_debug(log, "iocp ev handler: %08x" _ ev->event_handler);
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
231
92
19cc647ecd91 nginx-0.0.1-2003-05-20-19:37:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 69
diff changeset
232 ev->event_handler(ev);
59
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
233 }
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
234
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
235 return NGX_OK;
e8cdc2989cee nginx-0.0.1-2003-02-06-20:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
236 }
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
237
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
238
114
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
239 static void *ngx_iocp_create_conf(ngx_cycle_t *cycle)
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
240 {
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
241 ngx_iocp_conf_t *cf;
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
242
114
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
243 ngx_test_null(cf, ngx_palloc(cycle->pool, sizeof(ngx_iocp_conf_t)),
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
244 NGX_CONF_ERROR);
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
245
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
246 cf->threads = NGX_CONF_UNSET;
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
247 cf->acceptex = NGX_CONF_UNSET;
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
248 cf->acceptex_read = NGX_CONF_UNSET;
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
249
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
250 return cf;
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
251 }
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
252
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
253
114
ac69ab96328d nginx-0.0.1-2003-07-07-10:11:50 import
Igor Sysoev <igor@sysoev.ru>
parents: 103
diff changeset
254 static char *ngx_iocp_init_conf(ngx_cycle_t *cycle, void *conf)
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
255 {
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
256 ngx_iocp_conf_t *cf = conf;
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
257
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
258 ngx_conf_init_value(cf->threads, 0);
103
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
259 ngx_conf_init_value(cf->acceptex, 10);
6dfda4cf5200 nginx-0.0.1-2003-06-11-19:28:34 import
Igor Sysoev <igor@sysoev.ru>
parents: 102
diff changeset
260 ngx_conf_init_value(cf->acceptex_read, 1);
102
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
261
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
262 return NGX_CONF_OK;
7e86d028d8f0 nginx-0.0.1-2003-06-06-18:59:20 import
Igor Sysoev <igor@sysoev.ru>
parents: 92
diff changeset
263 }