comparison src/event/modules/ngx_devpoll_module.c @ 116:571bcbff82c5

nginx-0.0.1-2003-07-11-08:50:59 import
author Igor Sysoev <igor@sysoev.ru>
date Fri, 11 Jul 2003 04:50:59 +0000
parents be27f922b9a2
children cd54bcbaf3b5
comparison
equal deleted inserted replaced
115:be27f922b9a2 116:571bcbff82c5
24 24
25 #endif 25 #endif
26 26
27 27
28 typedef struct { 28 typedef struct {
29 int changes; 29 u_int changes;
30 int events; 30 u_int events;
31 } ngx_devpoll_conf_t; 31 } ngx_devpoll_conf_t;
32 32
33 33
34 static int ngx_devpoll_init(ngx_cycle_t *cycle); 34 static int ngx_devpoll_init(ngx_cycle_t *cycle);
35 static void ngx_devpoll_done(ngx_cycle_t *cycle); 35 static void ngx_devpoll_done(ngx_cycle_t *cycle);
41 static void *ngx_devpoll_create_conf(ngx_cycle_t *cycle); 41 static void *ngx_devpoll_create_conf(ngx_cycle_t *cycle);
42 static char *ngx_devpoll_init_conf(ngx_cycle_t *cycle, void *conf); 42 static char *ngx_devpoll_init_conf(ngx_cycle_t *cycle, void *conf);
43 43
44 static int dp; 44 static int dp;
45 static struct pollfd *change_list, *event_list; 45 static struct pollfd *change_list, *event_list;
46 static u_int nchanges, max_changes; 46 static u_int nchanges, max_changes, nevents;
47 static int nevents;
48 47
49 static ngx_event_t **change_index; 48 static ngx_event_t **change_index;
50 49
51 50
52 static ngx_str_t devpoll_name = ngx_string("/dev/poll"); 51 static ngx_str_t devpoll_name = ngx_string("/dev/poll");
93 ngx_module_t ngx_devpoll_module = { 92 ngx_module_t ngx_devpoll_module = {
94 NGX_MODULE, 93 NGX_MODULE,
95 &ngx_devpoll_module_ctx, /* module context */ 94 &ngx_devpoll_module_ctx, /* module context */
96 ngx_devpoll_commands, /* module directives */ 95 ngx_devpoll_commands, /* module directives */
97 NGX_EVENT_MODULE, /* module type */ 96 NGX_EVENT_MODULE, /* module type */
98 NULL /* init module */ 97 NULL, /* init module */
98 NULL /* init child */
99 }; 99 };
100 100
101 101
102 static int ngx_devpoll_init(ngx_cycle_t *cycle) 102 static int ngx_devpoll_init(ngx_cycle_t *cycle)
103 { 103 {
319 } 319 }
320 320
321 321
322 int ngx_devpoll_process_events(ngx_log_t *log) 322 int ngx_devpoll_process_events(ngx_log_t *log)
323 { 323 {
324 int events, n, i; 324 int events, n, i, j;
325 ngx_msec_t timer, delta; 325 ngx_msec_t timer, delta;
326 ngx_err_t err; 326 ngx_err_t err;
327 ngx_cycle_t **cycle; 327 ngx_cycle_t **cycle;
328 ngx_connection_t *c; 328 ngx_connection_t *c;
329 struct dvpoll dvp; 329 struct dvpoll dvp;
395 for (i = 0; i < events; i++) { 395 for (i = 0; i < events; i++) {
396 c = &ngx_cycle->connections[event_list[i].fd]; 396 c = &ngx_cycle->connections[event_list[i].fd];
397 397
398 if (c->fd == -1) { 398 if (c->fd == -1) {
399 cycle = ngx_old_cycles.elts; 399 cycle = ngx_old_cycles.elts;
400 for (i = 0; i < ngx_old_cycles.nelts; i++) { 400 for (j = 0; j < ngx_old_cycles.nelts; j++) {
401 if (cycle[i] == NULL) { 401 if (cycle[i] == NULL) {
402 continue; 402 continue;
403 } 403 }
404 c = &cycle[i]->connections[event_list[i].fd]; 404 c = &cycle[j]->connections[event_list[i].fd];
405 if (c->fd != -1) { 405 if (c->fd != -1) {
406 break; 406 break;
407 } 407 }
408 } 408 }
409 } 409 }
469 469
470 static char *ngx_devpoll_init_conf(ngx_cycle_t *cycle, void *conf) 470 static char *ngx_devpoll_init_conf(ngx_cycle_t *cycle, void *conf)
471 { 471 {
472 ngx_devpoll_conf_t *dpcf = conf; 472 ngx_devpoll_conf_t *dpcf = conf;
473 473
474 ngx_conf_init_value(dpcf->changes, 512); 474 ngx_conf_init_unsigned_value(dpcf->changes, 512);
475 ngx_conf_init_value(dpcf->events, 512); 475 ngx_conf_init_unsigned_value(dpcf->events, 512);
476 476
477 return NGX_CONF_OK; 477 return NGX_CONF_OK;
478 } 478 }