Mercurial > hg > nginx
comparison src/event/ngx_event.c @ 59:e8cdc2989cee
nginx-0.0.1-2003-02-06-20:21:13 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 06 Feb 2003 17:21:13 +0000 |
parents | a499e0d1f16e |
children | 50186b49f2ad |
comparison
equal
deleted
inserted
replaced
58:6b13b1cadabe | 59:e8cdc2989cee |
---|---|
10 #include <ngx_connection.h> | 10 #include <ngx_connection.h> |
11 #include <ngx_event.h> | 11 #include <ngx_event.h> |
12 #include <ngx_event_accept.h> | 12 #include <ngx_event_accept.h> |
13 | 13 |
14 #include <ngx_select_module.h> | 14 #include <ngx_select_module.h> |
15 | |
15 #if (HAVE_POLL) | 16 #if (HAVE_POLL) |
16 #include <ngx_poll_module.h> | 17 #include <ngx_poll_module.h> |
17 #endif | 18 #endif |
19 | |
18 #if (HAVE_DEVPOLL) | 20 #if (HAVE_DEVPOLL) |
19 #include <ngx_devpoll_module.h> | 21 #include <ngx_devpoll_module.h> |
20 #endif | 22 #endif |
23 | |
21 #if (HAVE_KQUEUE) | 24 #if (HAVE_KQUEUE) |
22 #include <ngx_kqueue_module.h> | 25 #include <ngx_kqueue_module.h> |
26 #endif | |
27 | |
28 #if (HAVE_IOCP) | |
29 #include <ngx_event_acceptex.h> | |
30 #include <ngx_iocp_module.h> | |
23 #endif | 31 #endif |
24 | 32 |
25 | 33 |
26 ngx_connection_t *ngx_connections; | 34 ngx_connection_t *ngx_connections; |
27 ngx_event_t *ngx_read_events, *ngx_write_events; | 35 ngx_event_t *ngx_read_events, *ngx_write_events; |
66 #endif | 74 #endif |
67 #if (HAVE_DEVPOLL) | 75 #if (HAVE_DEVPOLL) |
68 ngx_devpoll_init, | 76 ngx_devpoll_init, |
69 #endif | 77 #endif |
70 #if (HAVE_KQUEUE) | 78 #if (HAVE_KQUEUE) |
71 ngx_kqueue_init | 79 ngx_kqueue_init, |
80 #endif | |
81 #if (HAVE_IOCP) | |
82 ngx_iocp_init | |
72 #endif | 83 #endif |
73 }; | 84 }; |
74 | 85 |
75 #endif /* USE_KQUEUE */ | 86 #endif /* USE_KQUEUE */ |
76 | 87 |
83 ngx_event_t *ev; | 94 ngx_event_t *ev; |
84 ngx_connection_t *c; | 95 ngx_connection_t *c; |
85 | 96 |
86 /* STUB */ | 97 /* STUB */ |
87 int max_connections = 512; | 98 int max_connections = 512; |
99 | |
100 #if (HAVE_IOCP) | |
101 ngx_event_type = NGX_IOCP_EVENT; | |
102 #endif | |
88 | 103 |
89 if (ngx_init_events(max_connections, log) == NGX_ERROR) { | 104 if (ngx_init_events(max_connections, log) == NGX_ERROR) { |
90 exit(1); | 105 exit(1); |
91 } | 106 } |
92 | 107 |
125 ngx_test_null(ev->log, | 140 ngx_test_null(ev->log, |
126 ngx_palloc(pool, sizeof(ngx_log_t)), /* void */ ; ); | 141 ngx_palloc(pool, sizeof(ngx_log_t)), /* void */ ; ); |
127 ngx_memcpy(ev->log, c->log, sizeof(ngx_log_t)); | 142 ngx_memcpy(ev->log, c->log, sizeof(ngx_log_t)); |
128 c->read = ev; | 143 c->read = ev; |
129 ev->data = c; | 144 ev->data = c; |
130 ev->event_handler = &ngx_event_accept; | 145 ev->index = NGX_INVALID_INDEX; |
146 #if 0 | |
131 ev->listening = 1; | 147 ev->listening = 1; |
132 ev->index = NGX_INVALID_INDEX; | 148 #endif |
133 | 149 |
134 ev->available = 0; | 150 ev->available = 0; |
135 | 151 |
136 #if (HAVE_DEFERRED_ACCEPT) | 152 #if (HAVE_DEFERRED_ACCEPT) |
137 ev->deferred_accept = s[i].deferred_accept; | 153 ev->deferred_accept = s[i].deferred_accept; |
138 #endif | 154 #endif |
155 | |
156 #if (HAVE_IOCP) | |
157 | |
158 if (ngx_event_flags & NGX_HAVE_IOCP_EVENT) { | |
159 ev->event_handler = &ngx_event_acceptex; | |
160 | |
161 if (ngx_iocp_add_event(ev) == NGX_ERROR) { | |
162 return NGX_ERROR; | |
163 } | |
164 | |
165 ngx_event_post_acceptex(&s[i], 1); | |
166 | |
167 } else { | |
168 ev->event_handler = &ngx_event_accept; | |
169 } | |
170 | |
171 #else | |
172 | |
173 ev->event_handler = &ngx_event_accept; | |
139 ngx_add_event(ev, NGX_READ_EVENT, 0); | 174 ngx_add_event(ev, NGX_READ_EVENT, 0); |
175 | |
176 #endif | |
140 } | 177 } |
141 } | 178 } |
142 | 179 |
143 void ngx_worker(ngx_log_t *log) | 180 void ngx_worker(ngx_log_t *log) |
144 { | 181 { |