Mercurial > hg > nginx
comparison src/event/ngx_event.h @ 60:50186b49f2ad
nginx-0.0.1-2003-02-11-10:14:40 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 11 Feb 2003 07:14:40 +0000 |
parents | e8cdc2989cee |
children | 36d2c25cc9bb |
comparison
equal
deleted
inserted
replaced
59:e8cdc2989cee | 60:50186b49f2ad |
---|---|
104 #endif | 104 #endif |
105 #endif | 105 #endif |
106 }; | 106 }; |
107 | 107 |
108 typedef enum { | 108 typedef enum { |
109 NGX_SELECT_EVENT = 0, | 109 NGX_SELECT_EVENT_N = 0, |
110 #if (HAVE_POLL) | 110 #if (HAVE_POLL) |
111 NGX_POLL_EVENT, | 111 NGX_POLL_EVENT_N, |
112 #endif | 112 #endif |
113 #if (HAVE_DEVPOLL) | 113 #if (HAVE_DEVPOLL) |
114 NGX_DEVPOLL_EVENT, | 114 NGX_DEVPOLL_EVENT_N, |
115 #endif | 115 #endif |
116 #if (HAVE_KQUEUE) | 116 #if (HAVE_KQUEUE) |
117 NGX_KQUEUE_EVENT, | 117 NGX_KQUEUE_EVENT_N, |
118 #endif | 118 #endif |
119 #if (HAVE_IOCP) | 119 #if (HAVE_IOCP) |
120 NGX_IOCP_EVENT, | 120 NGX_IOCP_EVENT_N, |
121 #endif | 121 #endif |
122 NGX_DUMMY_EVENT /* avoid comma at end of enumerator list */ | 122 NGX_DUMMY_EVENT_N /* avoid comma at end of enumerator list */ |
123 } ngx_event_type_e ; | 123 } ngx_event_type_e ; |
124 | 124 |
125 typedef struct { | 125 typedef struct { |
126 int (*add)(ngx_event_t *ev, int event, u_int flags); | 126 int (*add)(ngx_event_t *ev, int event, u_int flags); |
127 int (*del)(ngx_event_t *ev, int event, u_int flags); | 127 int (*del)(ngx_event_t *ev, int event, u_int flags); |
143 #define NGX_HAVE_ONESHOT_EVENT 2 | 143 #define NGX_HAVE_ONESHOT_EVENT 2 |
144 | 144 |
145 /* Event filter notifies only changes and initial level - kqueue */ | 145 /* Event filter notifies only changes and initial level - kqueue */ |
146 #define NGX_HAVE_CLEAR_EVENT 4 | 146 #define NGX_HAVE_CLEAR_EVENT 4 |
147 | 147 |
148 /* Event filter has kqueue features - eof flag, errno, available data, etc */ | |
149 #define NGX_HAVE_KQUEUE_EVENT 8 | |
150 | |
148 /* Event filter notifies only changes (edgesi) but not initial level - epoll */ | 151 /* Event filter notifies only changes (edgesi) but not initial level - epoll */ |
149 #define NGX_HAVE_EDGE_EVENT 8 | 152 #define NGX_HAVE_EDGE_EVENT 16 |
153 | |
154 /* No need to add or delete event filters - rt signals */ | |
155 #define NGX_HAVE_SIGIO_EVENT 32 | |
150 | 156 |
151 /* No need to add or delete event filters - overlapped, aio_read, aioread */ | 157 /* No need to add or delete event filters - overlapped, aio_read, aioread */ |
152 #define NGX_HAVE_AIO_EVENT 16 | 158 #define NGX_HAVE_AIO_EVENT 64 |
153 | 159 |
154 /* Need to add socket or halde only once - i/o completion port. | 160 /* Need to add socket or halde only once - i/o completion port. |
155 It also requires to set HAVE_AIO_EVENT and NGX_HAVE_AIO_EVENT */ | 161 It also requires to set HAVE_AIO_EVENT and NGX_HAVE_AIO_EVENT */ |
156 #define NGX_HAVE_IOCP_EVENT 32 | 162 #define NGX_HAVE_IOCP_EVENT 128 |
157 | 163 |
158 /* Event filter is deleted before closing file. Has no meaning | 164 /* Event filter is deleted before closing file. Has no meaning |
159 for select, poll, epoll. | 165 for select, poll, epoll. |
160 | 166 |
161 kqueue: kqueue deletes event filters for file that closed | 167 kqueue: kqueue deletes event filters for file that closed |