Mercurial > hg > nginx-quic
comparison src/event/ngx_event.h @ 8:708f8bb772ec
nginx-0.0.1-2002-09-02-18:48:24 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 02 Sep 2002 14:48:24 +0000 |
parents | b5481d6fbbd4 |
children | 6f58641241bb |
comparison
equal
deleted
inserted
replaced
7:b5481d6fbbd4 | 8:708f8bb772ec |
---|---|
2 #define _NGX_EVENT_H_INCLUDED_ | 2 #define _NGX_EVENT_H_INCLUDED_ |
3 | 3 |
4 | 4 |
5 #include <ngx_config.h> | 5 #include <ngx_config.h> |
6 #include <ngx_types.h> | 6 #include <ngx_types.h> |
7 #include <ngx_time.h> | |
7 #include <ngx_socket.h> | 8 #include <ngx_socket.h> |
8 #include <ngx_log.h> | 9 #include <ngx_log.h> |
9 #include <ngx_alloc.h> | 10 #include <ngx_alloc.h> |
10 #include <ngx_array.h> | 11 #include <ngx_array.h> |
11 | 12 |
38 /* write: available space in buffer */ | 39 /* write: available space in buffer */ |
39 /* otherwise: */ | 40 /* otherwise: */ |
40 /* accept: 1 if accept many, 0 otherwise */ | 41 /* accept: 1 if accept many, 0 otherwise */ |
41 | 42 |
42 /* flags - int are probably faster on write then bits ??? */ | 43 /* flags - int are probably faster on write then bits ??? */ |
44 #if !(USE_KQUEUE) | |
45 unsigned oneshot:1; | |
46 #endif | |
43 unsigned listening:1; | 47 unsigned listening:1; |
44 unsigned write:1; | 48 unsigned write:1; |
45 | 49 |
46 unsigned ready:1; | 50 unsigned ready:1; |
47 unsigned timedout:1; | 51 unsigned timedout:1; |
52 unsigned blocked:1; | |
53 | |
48 unsigned process:1; | 54 unsigned process:1; |
49 unsigned read_discarded:1; | 55 unsigned read_discarded:1; |
50 | 56 |
51 unsigned unexpected_eof:1; | 57 unsigned unexpected_eof:1; |
52 | 58 |
70 } ngx_event_type_e ; | 76 } ngx_event_type_e ; |
71 | 77 |
72 typedef struct { | 78 typedef struct { |
73 int (*add)(ngx_event_t *ev, int event, u_int flags); | 79 int (*add)(ngx_event_t *ev, int event, u_int flags); |
74 int (*del)(ngx_event_t *ev, int event); | 80 int (*del)(ngx_event_t *ev, int event); |
81 void (*timer)(ngx_event_t *ev, ngx_msec_t timer); | |
75 int (*process)(ngx_log_t *log); | 82 int (*process)(ngx_log_t *log); |
76 int (*read)(ngx_event_t *ev, char *buf, size_t size); | 83 int (*read)(ngx_event_t *ev, char *buf, size_t size); |
77 /* | 84 /* |
78 int (*write)(ngx_event_t *ev, char *buf, size_t size); | 85 int (*write)(ngx_event_t *ev, char *buf, size_t size); |
79 */ | 86 */ |
91 | 98 |
92 #if (HAVE_KQUEUE) | 99 #if (HAVE_KQUEUE) |
93 | 100 |
94 #define NGX_READ_EVENT EVFILT_READ | 101 #define NGX_READ_EVENT EVFILT_READ |
95 #define NGX_WRITE_EVENT EVFILT_WRITE | 102 #define NGX_WRITE_EVENT EVFILT_WRITE |
96 #define NGX_TIMER_EVENT (-EVFILT_SYSCOUNT - 1) | |
97 | 103 |
98 #define NGX_LEVEL_EVENT 0 | 104 #define NGX_LEVEL_EVENT 0 |
99 #define NGX_ONESHOT_EVENT EV_ONESHOT | 105 #define NGX_ONESHOT_EVENT EV_ONESHOT |
106 | |
107 #ifndef HAVE_CLEAR_EVENT | |
108 #define HAVE_CLEAR_EVENT 1 | |
100 #define NGX_CLEAR_EVENT EV_CLEAR | 109 #define NGX_CLEAR_EVENT EV_CLEAR |
110 #endif | |
101 | 111 |
102 #else | 112 #else |
103 | 113 |
104 #define NGX_READ_EVENT 0 | 114 #define NGX_READ_EVENT 0 |
105 #define NGX_WRITE_EVENT 1 | 115 #define NGX_WRITE_EVENT 1 |
106 #define NGX_TIMER_EVENT 2 | |
107 | 116 |
108 #define NGX_LEVEL_EVENT 0 | 117 #define NGX_LEVEL_EVENT 0 |
109 #define NGX_ONESHOT_EVENT 1 | 118 #define NGX_ONESHOT_EVENT 1 |
110 #define NGX_CLEAR_EVENT 2 | |
111 | 119 |
112 #endif | 120 #endif |
113 | 121 |
114 | 122 |
115 #if (USE_KQUEUE) | 123 #if (USE_KQUEUE) |
116 | 124 |
117 #define ngx_init_events ngx_kqueue_init | 125 #define ngx_init_events ngx_kqueue_init |
118 #define ngx_process_events ngx_kqueue_process_events | 126 #define ngx_process_events ngx_kqueue_process_events |
119 #define ngx_add_event ngx_kqueue_add_event | 127 #define ngx_kqueue_add_event(ev, event) \ |
120 #define ngx_del_event ngx_kqueue_del_event | 128 ngx_kqueue_set_event(ev, event, EV_ADD | flags) |
129 #define ngx_kqueue_del_event(ev, event) \ | |
130 ngx_kqueue_set_event(ev, event, EV_DELETE) | |
131 #define ngx_add_timer ngx_kqueue_add_timer | |
121 #define ngx_event_recv ngx_event_recv_core | 132 #define ngx_event_recv ngx_event_recv_core |
122 | 133 |
123 #else | 134 #else |
124 | 135 |
125 #define ngx_init_events (ngx_event_init[ngx_event_type]) | 136 #define ngx_init_events (ngx_event_init[ngx_event_type]) |
126 #define ngx_process_events ngx_event_actions.process | 137 #define ngx_process_events ngx_event_actions.process |
127 #define ngx_add_event ngx_event_actions.add | 138 #define ngx_add_event ngx_event_actions.add |
128 #define ngx_del_event ngx_event_actions.del | 139 #define ngx_del_event ngx_event_actions.del |
140 #define ngx_add_timer ngx_event_actions.timer | |
129 #define ngx_event_recv ngx_event_recv_core | 141 #define ngx_event_recv ngx_event_recv_core |
130 | 142 |
131 #endif | 143 #endif |
132 | 144 |
133 | |
134 #define ngx_add_timer(ev, time) ngx_add_event(ev, NGX_TIMER_EVENT, time) | |
135 | 145 |
136 static void ngx_inline ngx_del_timer(ngx_event_t *ev) | 146 static void ngx_inline ngx_del_timer(ngx_event_t *ev) |
137 { | 147 { |
138 if (ev->timer_prev) | 148 if (ev->timer_prev) |
139 ev->timer_prev->timer_next = ev->timer_next; | 149 ev->timer_prev->timer_next = ev->timer_next; |