diff options
Diffstat (limited to 'src/event')
| -rw-r--r-- | src/event/modules/ngx_select_module.c | 6 | ||||
| -rw-r--r-- | src/event/ngx_event.h | 8 |
2 files changed, 8 insertions, 6 deletions
diff --git a/src/event/modules/ngx_select_module.c b/src/event/modules/ngx_select_module.c index 884eea7bb..54a5f7ee6 100644 --- a/src/event/modules/ngx_select_module.c +++ b/src/event/modules/ngx_select_module.c @@ -126,6 +126,8 @@ int ngx_select_del_event(ngx_event_t *ev, int event) ngx_connection_t *c; c = (ngx_connection_t *) ev->data; + ngx_log_debug(c->log, "del event: %d" _ c->fd); + #if (WIN32) if (event == NGX_READ_EVENT) { FD_CLR(c->fd, &master_read_fd_set); @@ -146,13 +148,13 @@ int ngx_select_del_event(ngx_event_t *ev, int event) max_fd = -1; #endif + nevents--; + if (ev->index < nevents) { event_index[ev->index] = event_index[nevents]; event_index[ev->index]->index = ev->index; } - nevents--; - return NGX_OK; } diff --git a/src/event/ngx_event.h b/src/event/ngx_event.h index a4e8dd5ba..866911cf1 100644 --- a/src/event/ngx_event.h +++ b/src/event/ngx_event.h @@ -22,8 +22,8 @@ struct ngx_event_s { int index; - ngx_event_t *prev; /* queue in select(), poll(), mutex(), */ - ngx_event_t *next; /* aio_read(), aio_write() */ + ngx_event_t *prev; /* queue in mutex(), aio_read(), aio_write() */ + ngx_event_t *next; /* */ int (*timer_handler)(ngx_event_t *ev); ngx_event_t *timer_prev; @@ -43,9 +43,9 @@ struct ngx_event_s { /* accept: 1 if accept many, 0 otherwise */ /* flags - int are probably faster on write then bits ??? */ -#if !(USE_KQUEUE) + unsigned oneshot:1; -#endif + unsigned listening:1; unsigned write:1; |
