diff options
| author | Igor Sysoev <igor@sysoev.ru> | 2002-08-29 16:59:54 +0000 |
|---|---|---|
| committer | Igor Sysoev <igor@sysoev.ru> | 2002-08-29 16:59:54 +0000 |
| commit | 016b85270268989d769bade2004a7c628a47d726 (patch) | |
| tree | e5054a784236d0087b0a5f2cb473a082cfd6023f /src/event | |
| parent | 0ad17c09032bdfbc67cd1239b43107edc9d55a52 (diff) | |
| download | nginx-016b85270268989d769bade2004a7c628a47d726.tar.gz nginx-016b85270268989d769bade2004a7c628a47d726.tar.bz2 | |
nginx-0.0.1-2002-08-29-20:59:54 import
Diffstat (limited to 'src/event')
| -rw-r--r-- | src/event/modules/ngx_kqueue_module.c | 14 | ||||
| -rw-r--r-- | src/event/modules/ngx_select_module.c | 7 | ||||
| -rw-r--r-- | src/event/ngx_event.c | 2 | ||||
| -rw-r--r-- | src/event/ngx_event.h | 17 | ||||
| -rw-r--r-- | src/event/ngx_event_close.c | 21 | ||||
| -rw-r--r-- | src/event/ngx_event_recv.c | 26 |
6 files changed, 54 insertions, 33 deletions
diff --git a/src/event/modules/ngx_kqueue_module.c b/src/event/modules/ngx_kqueue_module.c index f7dee180e..1ea3d22c2 100644 --- a/src/event/modules/ngx_kqueue_module.c +++ b/src/event/modules/ngx_kqueue_module.c @@ -8,6 +8,7 @@ */ #include <ngx_config.h> +#include <ngx_core.h> #include <ngx_types.h> #include <ngx_log.h> #include <ngx_connection.h> @@ -19,7 +20,6 @@ #endif static void ngx_add_timer_core(ngx_event_t *ev, u_int timer); -static void ngx_inline ngx_del_timer(ngx_event_t *ev); static int kq; @@ -145,7 +145,7 @@ int ngx_kqueue_process_events(ngx_log_t *log) } ngx_log_debug(log, "ngx_kqueue_process_events: " - "timer: %d, delta: %d" _ timer _ delta); + "timer: %d, delta: %d" _ timer _ delta); if (timer) { if (delta >= timer) { @@ -158,7 +158,7 @@ int ngx_kqueue_process_events(ngx_log_t *log) ngx_del_timer(ev); #if 1 ev->timedout = 1; - if (ev->event_handler(ev) == -1) + if (ev->event_handler(ev) == NGX_ERROR) ev->close_handler(ev); #else if (ev->timer_handler(ev) == -1) @@ -200,7 +200,7 @@ int ngx_kqueue_process_events(ngx_log_t *log) ev->error = event_list[i].fflags; } - if (ev->event_handler(ev) == -1) + if (ev->event_handler(ev) == NGX_ERROR) ev->close_handler(ev); break; @@ -233,6 +233,7 @@ static void ngx_add_timer_core(ngx_event_t *ev, u_int timer) e->timer_prev = ev; } +#if 0 static void ngx_inline ngx_del_timer(ngx_event_t *ev) { if (ev->timer_prev) @@ -240,9 +241,10 @@ static void ngx_inline ngx_del_timer(ngx_event_t *ev) if (ev->timer_next) { ev->timer_next->timer_prev = ev->timer_prev; - ev->timer_prev = NULL; + ev->timer_next = NULL; } if (ev->timer_prev) - ev->timer_next = NULL; + ev->timer_prev = NULL; } +#endif diff --git a/src/event/modules/ngx_select_module.c b/src/event/modules/ngx_select_module.c index bde14a1e4..9639a1b43 100644 --- a/src/event/modules/ngx_select_module.c +++ b/src/event/modules/ngx_select_module.c @@ -24,7 +24,6 @@ static ngx_event_t timer_queue; static void ngx_add_timer_core(ngx_event_t *ev, u_int timer); -static void ngx_inline ngx_del_timer(ngx_event_t *ev); static fd_set *ngx_select_get_fd_set(ngx_socket_t fd, int event, ngx_log_t *log); @@ -338,6 +337,7 @@ static void ngx_add_timer_core(ngx_event_t *ev, u_int timer) e->timer_prev = ev; } +#if 0 static void ngx_inline ngx_del_timer(ngx_event_t *ev) { if (ev->timer_prev) @@ -345,9 +345,10 @@ static void ngx_inline ngx_del_timer(ngx_event_t *ev) if (ev->timer_next) { ev->timer_next->timer_prev = ev->timer_prev; - ev->timer_prev = NULL; + ev->timer_next = NULL; } if (ev->timer_prev) - ev->timer_next = NULL; + ev->timer_prev = NULL; } +#endif diff --git a/src/event/ngx_event.c b/src/event/ngx_event.c index a5cdb1142..0d02dfea5 100644 --- a/src/event/ngx_event.c +++ b/src/event/ngx_event.c @@ -19,7 +19,7 @@ ngx_event_t *ngx_read_events, *ngx_write_events; #if !(USE_KQUEUE) -#if 1 +#if 0 ngx_event_type_e ngx_event_type = NGX_SELECT_EVENT; #else ngx_event_type_e ngx_event_type = NGX_KQUEUE_EVENT; diff --git a/src/event/ngx_event.h b/src/event/ngx_event.h index d2e6c1f67..9e4bc020a 100644 --- a/src/event/ngx_event.h +++ b/src/event/ngx_event.h @@ -133,6 +133,23 @@ NGX_AIO_EVENT overlapped, aio_read, aioread #define ngx_add_timer(ev, time) ngx_add_event(ev, NGX_TIMER_EVENT, time) +static void ngx_inline ngx_del_timer(ngx_event_t *ev) +{ + if (ev->timer_prev) + ev->timer_prev->timer_next = ev->timer_next; + + if (ev->timer_next) { + ev->timer_next->timer_prev = ev->timer_prev; + ev->timer_next = NULL; + } + + if (ev->timer_prev) + ev->timer_prev = NULL; +} + + + + extern ngx_event_t *ngx_read_events; extern ngx_event_t *ngx_write_events; extern ngx_connection_t *ngx_connections; diff --git a/src/event/ngx_event_close.c b/src/event/ngx_event_close.c index c95689182..0e3fe20c7 100644 --- a/src/event/ngx_event_close.c +++ b/src/event/ngx_event_close.c @@ -1,5 +1,6 @@ #include <ngx_config.h> +#include <ngx_core.h> #include <ngx_types.h> #include <ngx_connection.h> #include <ngx_event_close.h> @@ -8,22 +9,24 @@ int ngx_event_close_connection(ngx_event_t *ev) { int rc; - ngx_connection_t *cn = (ngx_connection_t *) ev->data; + ngx_connection_t *c = (ngx_connection_t *) ev->data; - ngx_assert((cn->fd != -1), return -1, ev->log, + ngx_assert((c->fd != -1), return NGX_ERROR, c->log, "ngx_event_close: already closed"); - if ((rc = ngx_close_socket(cn->fd)) == -1) - ngx_log_error(NGX_LOG_ERR, ev->log, ngx_socket_errno, + ngx_destroy_pool(c->pool); + + if ((rc = ngx_close_socket(c->fd)) == -1) + ngx_log_error(NGX_LOG_ERR, c->log, ngx_socket_errno, "ngx_event_close: close failed"); - if (cn->read->next) - ngx_del_event(cn->read, NGX_READ_EVENT); + if (c->read->next) + ngx_del_event(c->read, NGX_READ_EVENT); - if (cn->write->next) - ngx_del_event(cn->write, NGX_WRITE_EVENT); + if (c->write->next) + ngx_del_event(c->write, NGX_WRITE_EVENT); - cn->fd = -1; + c->fd = -1; return rc; } diff --git a/src/event/ngx_event_recv.c b/src/event/ngx_event_recv.c index e286acaa9..4b01a4c68 100644 --- a/src/event/ngx_event_recv.c +++ b/src/event/ngx_event_recv.c @@ -6,29 +6,27 @@ #include <ngx_recv.h> #include <ngx_connection.h> -int ngx_event_recv_core(ngx_event_t *ev, char *buf, size_t size) +int ngx_event_recv_core(ngx_connection_t *c, char *buf, size_t size) { int n; ngx_err_t err; - ngx_connection_t *c; - c = (ngx_connection_t *) ev->data; - - if (ev->timedout) { + if (c->read->timedout) { ngx_set_socket_errno(NGX_ETIMEDOUT); - ngx_log_error(NGX_LOG_ERR, ev->log, NGX_ETIMEDOUT, "recv() failed"); + ngx_log_error(NGX_LOG_ERR, c->log, NGX_ETIMEDOUT, "recv() failed"); return NGX_ERROR; } #if (HAVE_KQUEUE) - ngx_log_debug(ev->log, "ngx_event_recv: eof:%d, avail:%d, err:%d" _ - ev->eof _ ev->available _ ev->error); + ngx_log_debug(c->log, "ngx_event_recv: eof:%d, avail:%d, err:%d" _ + c->read->eof _ c->read->available _ c->read->error); #if !(USE_KQUEUE) if (ngx_event_type == NGX_KQUEUE_EVENT) #endif - if (ev->eof && ev->available == 0) { - if (ev->error) { - ngx_log_error(NGX_LOG_ERR, ev->log, ev->error, "recv() failed"); + if (c->read->eof && c->read->available == 0) { + if (c->read->error) { + ngx_log_error(NGX_LOG_ERR, c->log, c->read->error, + "recv() failed"); return NGX_ERROR; } @@ -42,11 +40,11 @@ int ngx_event_recv_core(ngx_event_t *ev, char *buf, size_t size) err = ngx_socket_errno; if (err == NGX_EAGAIN) { - ngx_log_error(NGX_LOG_INFO, ev->log, err, "recv() returns EAGAIN"); + ngx_log_error(NGX_LOG_INFO, c->log, err, "recv() returns EAGAIN"); return NGX_AGAIN; } - ngx_log_error(NGX_LOG_ERR, ev->log, err, "recv() failed"); + ngx_log_error(NGX_LOG_ERR, c->log, err, "recv() failed"); return NGX_ERROR; } @@ -54,7 +52,7 @@ int ngx_event_recv_core(ngx_event_t *ev, char *buf, size_t size) #if !(USE_KQUEUE) if (ngx_event_type == NGX_KQUEUE_EVENT) #endif - ev->available -= n; + c->read->available -= n; #endif return n; |
