comparison src/event/modules/ngx_kqueue_module.c @ 18:72ad26c77d2d

nginx-0.0.1-2002-10-04-21:58:04 import
author Igor Sysoev <igor@sysoev.ru>
date Fri, 04 Oct 2002 17:58:04 +0000
parents 8dd06e2844f5
children 53cb81681040
comparison
equal deleted inserted replaced
17:8dd06e2844f5 18:72ad26c77d2d
1 /* 1 /*
2 * Copyright (C) 2002 Igor Sysoev, http://sysoev.ru 2 * Copyright (C) 2002 Igor Sysoev, http://sysoev.ru
3 */ 3 */
4 4
5 /*
6 NEED ? : unify change_list and event_list:
7 event_list = change_list;
8 */
9 5
10 #include <ngx_config.h> 6 #include <ngx_config.h>
11 #include <ngx_core.h> 7 #include <ngx_core.h>
12 #include <ngx_types.h> 8 #include <ngx_types.h>
13 #include <ngx_log.h> 9 #include <ngx_log.h>
64 return ngx_kqueue_set_event(ev, event, EV_ADD | flags); 60 return ngx_kqueue_set_event(ev, event, EV_ADD | flags);
65 } 61 }
66 62
67 int ngx_kqueue_del_event(ngx_event_t *ev, int event) 63 int ngx_kqueue_del_event(ngx_event_t *ev, int event)
68 { 64 {
65 ngx_event_t *e;
66
67 if (ev->index <= nchanges && change_list[ev->index].udata == ev) {
68 change_list[ev->index] = change_list[nchanges];
69 e = (ngx_event_t *) change_list[ev->index].udata;
70 e->index = ev->index;
71 nchanges--;
72
73 return NGX_OK;
74 }
75
69 return ngx_kqueue_set_event(ev, event, EV_DELETE); 76 return ngx_kqueue_set_event(ev, event, EV_DELETE);
70 } 77 }
71 78
72 int ngx_kqueue_set_event(ngx_event_t *ev, int filter, u_int flags) 79 int ngx_kqueue_set_event(ngx_event_t *ev, int filter, u_int flags)
73 { 80 {
92 change_list[nchanges].filter = filter; 99 change_list[nchanges].filter = filter;
93 change_list[nchanges].flags = flags; 100 change_list[nchanges].flags = flags;
94 change_list[nchanges].fflags = 0; 101 change_list[nchanges].fflags = 0;
95 change_list[nchanges].data = 0; 102 change_list[nchanges].data = 0;
96 change_list[nchanges].udata = ev; 103 change_list[nchanges].udata = ev;
104
105 if (flags == EV_ADD)
106 ev->index = nchanges;
107
97 nchanges++; 108 nchanges++;
98 109
99 return NGX_OK; 110 return NGX_OK;
100 } 111 }
101 112