Mercurial > hg > nginx
comparison src/event/modules/ngx_select_module.c @ 92:19cc647ecd91
nginx-0.0.1-2003-05-20-19:37:55 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 20 May 2003 15:37:55 +0000 |
parents | 637625a2acdb |
children | a23d010f356d |
comparison
equal
deleted
inserted
replaced
91:637625a2acdb | 92:19cc647ecd91 |
---|---|
107 } | 107 } |
108 | 108 |
109 | 109 |
110 static void ngx_select_done(ngx_log_t *log) | 110 static void ngx_select_done(ngx_log_t *log) |
111 { | 111 { |
112 ngx_event_timer_done(log); | |
113 | |
112 ngx_free(event_index); | 114 ngx_free(event_index); |
113 ngx_free(ready_index); | 115 ngx_free(ready_index); |
114 } | 116 } |
115 | 117 |
116 | 118 |
147 } else if (event == NGX_WRITE_EVENT) { | 149 } else if (event == NGX_WRITE_EVENT) { |
148 FD_SET(c->fd, &master_write_fd_set); | 150 FD_SET(c->fd, &master_write_fd_set); |
149 max_write++; | 151 max_write++; |
150 } | 152 } |
151 #else | 153 #else |
152 if (event == NGX_READ_EVENT) | 154 if (event == NGX_READ_EVENT) { |
153 FD_SET(c->fd, &master_read_fd_set); | 155 FD_SET(c->fd, &master_read_fd_set); |
154 | 156 |
155 else if (event == NGX_WRITE_EVENT) | 157 } else if (event == NGX_WRITE_EVENT) { |
156 FD_SET(c->fd, &master_write_fd_set); | 158 FD_SET(c->fd, &master_write_fd_set); |
157 | 159 } |
158 if (max_fd != -1 && max_fd < c->fd) | 160 |
161 if (max_fd != -1 && max_fd < c->fd) { | |
159 max_fd = c->fd; | 162 max_fd = c->fd; |
163 } | |
160 | 164 |
161 #endif | 165 #endif |
162 | 166 |
163 ev->active = 1; | 167 ev->active = 1; |
164 ev->oneshot = (flags & NGX_ONESHOT_EVENT) ? 1: 0; | 168 ev->oneshot = (flags & NGX_ONESHOT_EVENT) ? 1 : 0; |
165 | 169 |
166 event_index[nevents] = ev; | 170 event_index[nevents] = ev; |
167 ev->index = nevents; | 171 ev->index = nevents; |
168 nevents++; | 172 nevents++; |
169 | 173 |
175 { | 179 { |
176 ngx_connection_t *c; | 180 ngx_connection_t *c; |
177 | 181 |
178 c = ev->data; | 182 c = ev->data; |
179 | 183 |
180 if (ev->index == NGX_INVALID_INDEX) | 184 if (ev->index == NGX_INVALID_INDEX) { |
181 return NGX_OK; | 185 return NGX_OK; |
186 } | |
182 | 187 |
183 #if (NGX_DEBUG_EVENT) | 188 #if (NGX_DEBUG_EVENT) |
184 ngx_log_debug(c->log, "del event: %d, %d" _ c->fd _ event); | 189 ngx_log_debug(c->log, "del event: %d, %d" _ c->fd _ event); |
185 #endif | 190 #endif |
186 | 191 |
187 #if (WIN32) | 192 #if (WIN32) |
193 | |
188 if (event == NGX_READ_EVENT) { | 194 if (event == NGX_READ_EVENT) { |
189 FD_CLR(c->fd, &master_read_fd_set); | 195 FD_CLR(c->fd, &master_read_fd_set); |
190 max_read--; | 196 max_read--; |
191 | 197 |
192 } else if (event == NGX_WRITE_EVENT) { | 198 } else if (event == NGX_WRITE_EVENT) { |
193 FD_CLR(c->fd, &master_write_fd_set); | 199 FD_CLR(c->fd, &master_write_fd_set); |
194 max_write--; | 200 max_write--; |
195 } | 201 } |
196 #else | 202 |
197 if (event == NGX_READ_EVENT) | 203 #else |
204 | |
205 if (event == NGX_READ_EVENT) { | |
198 FD_CLR(c->fd, &master_read_fd_set); | 206 FD_CLR(c->fd, &master_read_fd_set); |
199 | 207 |
200 else if (event == NGX_WRITE_EVENT) | 208 } else if (event == NGX_WRITE_EVENT) { |
201 FD_CLR(c->fd, &master_write_fd_set); | 209 FD_CLR(c->fd, &master_write_fd_set); |
202 | 210 } |
203 if (max_fd == c->fd) | 211 |
212 if (max_fd == c->fd) { | |
204 max_fd = -1; | 213 max_fd = -1; |
214 } | |
215 | |
205 #endif | 216 #endif |
206 | 217 |
207 if (ev->index < --nevents) { | 218 if (ev->index < --nevents) { |
208 event_index[ev->index] = event_index[nevents]; | 219 event_index[ev->index] = event_index[nevents]; |
209 event_index[ev->index]->index = ev->index; | 220 event_index[ev->index]->index = ev->index; |
244 | 255 |
245 #if !(WIN32) | 256 #if !(WIN32) |
246 if (max_fd == -1) { | 257 if (max_fd == -1) { |
247 for (i = 0; i < nevents; i++) { | 258 for (i = 0; i < nevents; i++) { |
248 c = (ngx_connection_t *) event_index[i]->data; | 259 c = (ngx_connection_t *) event_index[i]->data; |
249 if (max_fd < c->fd) | 260 if (max_fd < c->fd) { |
250 max_fd = c->fd; | 261 max_fd = c->fd; |
262 } | |
251 } | 263 } |
252 | 264 |
253 #if (NGX_DEBUG_EVENT) | 265 #if (NGX_DEBUG_EVENT) |
254 ngx_log_debug(log, "change max_fd: %d" _ max_fd); | 266 ngx_log_debug(log, "change max_fd: %d" _ max_fd); |
255 #endif | 267 #endif |
342 if (ev->timer_set) { | 354 if (ev->timer_set) { |
343 ngx_del_timer(ev); | 355 ngx_del_timer(ev); |
344 ev->timer_set = 0; | 356 ev->timer_set = 0; |
345 } | 357 } |
346 | 358 |
347 if (ev->write) | 359 if (ev->write) { |
348 ngx_select_del_event(ev, NGX_WRITE_EVENT, 0); | 360 ngx_select_del_event(ev, NGX_WRITE_EVENT, 0); |
349 else | 361 } else { |
350 ngx_select_del_event(ev, NGX_READ_EVENT, 0); | 362 ngx_select_del_event(ev, NGX_READ_EVENT, 0); |
363 } | |
351 } | 364 } |
352 | 365 |
353 ev->event_handler(ev); | 366 ev->event_handler(ev); |
354 } | 367 } |
355 | 368 |