Mercurial > hg > nginx-quic
comparison src/event/ngx_event.h @ 195:8dee38ea9117
nginx-0.0.1-2003-11-25-23:44:56 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 25 Nov 2003 20:44:56 +0000 |
parents | 2357fa41738a |
children | c9da5900c79e |
comparison
equal
deleted
inserted
replaced
194:2357fa41738a | 195:8dee38ea9117 |
---|---|
105 /* setsockopt(SO_UPDATE_ACCEPT_CONTEXT) was succesfull */ | 105 /* setsockopt(SO_UPDATE_ACCEPT_CONTEXT) was succesfull */ |
106 unsigned accept_context_updated:1; | 106 unsigned accept_context_updated:1; |
107 #endif | 107 #endif |
108 | 108 |
109 #if (HAVE_KQUEUE) | 109 #if (HAVE_KQUEUE) |
110 unsigned kq_vnode:1; | |
111 | |
110 /* the pending errno reported by kqueue */ | 112 /* the pending errno reported by kqueue */ |
111 int kq_errno; | 113 int kq_errno; |
112 #endif | 114 #endif |
113 | 115 |
114 | 116 |
210 */ | 212 */ |
211 #define NGX_USE_AIO_EVENT 0x00000080 | 213 #define NGX_USE_AIO_EVENT 0x00000080 |
212 | 214 |
213 /* | 215 /* |
214 * Need to add socket or handle only once - i/o completion port. | 216 * Need to add socket or handle only once - i/o completion port. |
215 * It also requires HAVE_AIO_EVENT and NGX_HAVE_AIO_EVENT to be set. | 217 * It also requires HAVE_AIO and NGX_USE_AIO_EVENT to be set. |
216 */ | 218 */ |
217 #define NGX_USE_IOCP_EVENT 0x00000100 | 219 #define NGX_USE_IOCP_EVENT 0x00000100 |
218 | 220 |
219 | 221 |
220 | 222 |
231 | 233 |
232 | 234 |
233 /* these flags have a meaning only for kqueue */ | 235 /* these flags have a meaning only for kqueue */ |
234 #define NGX_LOWAT_EVENT 0 | 236 #define NGX_LOWAT_EVENT 0 |
235 #define NGX_DISABLE_EVENT 0 | 237 #define NGX_DISABLE_EVENT 0 |
238 #define NGX_VNODE_EVENT 0 | |
236 | 239 |
237 | 240 |
238 #if (HAVE_KQUEUE) | 241 #if (HAVE_KQUEUE) |
239 | 242 |
240 #define NGX_READ_EVENT EVFILT_READ | 243 #define NGX_READ_EVENT EVFILT_READ |
241 #define NGX_WRITE_EVENT EVFILT_WRITE | 244 #define NGX_WRITE_EVENT EVFILT_WRITE |
245 | |
246 #undef NGX_VNODE_EVENT | |
247 #define NGX_VNODE_EVENT EVFILT_VNODE | |
242 | 248 |
243 /* | 249 /* |
244 * NGX_CLOSE_EVENT and NGX_LOWAT_EVENT are the module flags and they would | 250 * NGX_CLOSE_EVENT and NGX_LOWAT_EVENT are the module flags and they would |
245 * not go into a kernel so we need to choose the value that would not interfere | 251 * not go into a kernel so we need to choose the value that would not interfere |
246 * with any existent and future kqueue flags. kqueue has such values - | 252 * with any existent and future kqueue flags. kqueue has such values - |
287 #define NGX_ONESHOT_EVENT 1 | 293 #define NGX_ONESHOT_EVENT 1 |
288 | 294 |
289 #endif /* HAVE_KQUEUE */ | 295 #endif /* HAVE_KQUEUE */ |
290 | 296 |
291 | 297 |
292 #if (HAVE_IOCP_EVENT) | 298 #if (HAVE_IOCP) |
293 #define NGX_IOCP_ACCEPT 0 | 299 #define NGX_IOCP_ACCEPT 0 |
294 #define NGX_IOCP_IO 1 | 300 #define NGX_IOCP_IO 1 |
295 #define NGX_IOCP_CONNECT 2 | 301 #define NGX_IOCP_CONNECT 2 |
296 #endif | 302 #endif |
297 | 303 |
442 | 448 |
443 /* kqueue */ | 449 /* kqueue */ |
444 | 450 |
445 if (!wev->active && !wev->ready) { | 451 if (!wev->active && !wev->ready) { |
446 if (ngx_add_event(wev, NGX_WRITE_EVENT, NGX_CLEAR_EVENT|flags) | 452 if (ngx_add_event(wev, NGX_WRITE_EVENT, NGX_CLEAR_EVENT|flags) |
447 == NGX_ERROR) { | 453 == NGX_ERROR) |
454 { | |
448 return NGX_ERROR; | 455 return NGX_ERROR; |
449 } | 456 } |
450 } | 457 } |
451 | 458 |
452 return NGX_OK; | 459 return NGX_OK; |
455 | 462 |
456 /* select, poll, /dev/poll */ | 463 /* select, poll, /dev/poll */ |
457 | 464 |
458 if (!wev->active && !wev->ready) { | 465 if (!wev->active && !wev->ready) { |
459 if (ngx_add_event(wev, NGX_WRITE_EVENT, NGX_LEVEL_EVENT) | 466 if (ngx_add_event(wev, NGX_WRITE_EVENT, NGX_LEVEL_EVENT) |
460 == NGX_ERROR) { | 467 == NGX_ERROR) |
468 { | |
461 return NGX_ERROR; | 469 return NGX_ERROR; |
462 } | 470 } |
463 | 471 |
464 return NGX_OK; | 472 return NGX_OK; |
465 } | 473 } |
482 ngx_inline static int ngx_handle_level_write_event(ngx_event_t *wev) | 490 ngx_inline static int ngx_handle_level_write_event(ngx_event_t *wev) |
483 { | 491 { |
484 if (ngx_event_flags & NGX_USE_LEVEL_EVENT) { | 492 if (ngx_event_flags & NGX_USE_LEVEL_EVENT) { |
485 if (!wev->active && !wev->ready) { | 493 if (!wev->active && !wev->ready) { |
486 if (ngx_add_event(wev, NGX_WRITE_EVENT, NGX_LEVEL_EVENT) | 494 if (ngx_add_event(wev, NGX_WRITE_EVENT, NGX_LEVEL_EVENT) |
487 == NGX_ERROR) { | 495 == NGX_ERROR) |
496 { | |
488 return NGX_ERROR; | 497 return NGX_ERROR; |
489 } | 498 } |
490 | 499 |
491 return NGX_OK; | 500 return NGX_OK; |
492 } | 501 } |