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 }