Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nginx/nginx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/event/modules/ngx_devpoll_module.c6
-rw-r--r--src/event/modules/ngx_kqueue_module.c8
-rw-r--r--src/event/modules/ngx_poll_module.c6
-rw-r--r--src/event/modules/ngx_select_module.c9
-rw-r--r--src/event/ngx_event.c5
-rw-r--r--src/event/ngx_event_timer.c17
-rw-r--r--src/event/ngx_event_timer.h7
-rw-r--r--src/http/ngx_http_request.c15
8 files changed, 16 insertions, 57 deletions
diff --git a/src/event/modules/ngx_devpoll_module.c b/src/event/modules/ngx_devpoll_module.c
index 08aff29e1..583d08c6b 100644
--- a/src/event/modules/ngx_devpoll_module.c
+++ b/src/event/modules/ngx_devpoll_module.c
@@ -165,10 +165,6 @@ ngx_log_debug(cycle->log, "EV: %d" _ dpcf->events);
nevents = dpcf->events;
- if (ngx_event_timer_init(cycle) == NGX_ERROR) {
- return NGX_ERROR;
- }
-
ngx_io = ngx_os_io;
ngx_event_actions = ngx_devpoll_module_ctx.actions;
@@ -188,8 +184,6 @@ static void ngx_devpoll_done(ngx_cycle_t *cycle)
dp = -1;
- ngx_event_timer_done(cycle);
-
ngx_free(change_list);
ngx_free(event_list);
ngx_free(change_index);
diff --git a/src/event/modules/ngx_kqueue_module.c b/src/event/modules/ngx_kqueue_module.c
index 4a766bf6e..4b35aab68 100644
--- a/src/event/modules/ngx_kqueue_module.c
+++ b/src/event/modules/ngx_kqueue_module.c
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2002-2003 Igor Sysoev, http://sysoev.ru/en/
+ * Copyright (C) 2002-2004 Igor Sysoev, http://sysoev.ru/en/
*/
@@ -142,10 +142,6 @@ static int ngx_kqueue_init(ngx_cycle_t *cycle)
nevents = kcf->events;
- if (ngx_event_timer_init(cycle) == NGX_ERROR) {
- return NGX_ERROR;
- }
-
ngx_io = ngx_os_io;
ngx_event_actions = ngx_kqueue_module_ctx.actions;
@@ -174,8 +170,6 @@ static void ngx_kqueue_done(ngx_cycle_t *cycle)
ngx_kqueue = -1;
- ngx_event_timer_done(cycle);
-
ngx_free(change_list);
ngx_free(event_list);
diff --git a/src/event/modules/ngx_poll_module.c b/src/event/modules/ngx_poll_module.c
index 7c1c5fdf7..7b69de50b 100644
--- a/src/event/modules/ngx_poll_module.c
+++ b/src/event/modules/ngx_poll_module.c
@@ -101,10 +101,6 @@ static int ngx_poll_init(ngx_cycle_t *cycle)
NGX_ERROR);
}
- if (ngx_event_timer_init(cycle) == NGX_ERROR) {
- return NGX_ERROR;
- }
-
ngx_io = ngx_os_io;
ngx_event_actions = ngx_poll_module_ctx.actions;
@@ -117,8 +113,6 @@ static int ngx_poll_init(ngx_cycle_t *cycle)
static void ngx_poll_done(ngx_cycle_t *cycle)
{
- ngx_event_timer_done(cycle);
-
ngx_free(event_list);
ngx_free(event_index);
ngx_free(ready_index);
diff --git a/src/event/modules/ngx_select_module.c b/src/event/modules/ngx_select_module.c
index 4c87f20a5..66783e7e4 100644
--- a/src/event/modules/ngx_select_module.c
+++ b/src/event/modules/ngx_select_module.c
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2002-2003 Igor Sysoev, http://sysoev.ru
+ * Copyright (C) 2002-2004 Igor Sysoev, http://sysoev.ru/en/
*/
@@ -100,10 +100,6 @@ static int ngx_select_init(ngx_cycle_t *cycle)
NGX_ERROR);
}
- if (ngx_event_timer_init(cycle) == NGX_ERROR) {
- return NGX_ERROR;
- }
-
ngx_io = ngx_os_io;
ngx_event_actions = ngx_select_module_ctx.actions;
@@ -122,8 +118,6 @@ static int ngx_select_init(ngx_cycle_t *cycle)
static void ngx_select_done(ngx_cycle_t *cycle)
{
- ngx_event_timer_done(cycle);
-
ngx_free(event_index);
ngx_free(ready_index);
@@ -262,6 +256,7 @@ static int ngx_select_process_events(ngx_log_t *log)
work_write_fd_set = master_write_fd_set;
timer = ngx_event_find_timer();
+ ngx_old_elapsed_msec = ngx_elapsed_msec;
if (timer) {
#if (HAVE_SELECT_CHANGE_TIMEOUT)
diff --git a/src/event/ngx_event.c b/src/event/ngx_event.c
index c63c4875d..fada46122 100644
--- a/src/event/ngx_event.c
+++ b/src/event/ngx_event.c
@@ -120,10 +120,7 @@ static int ngx_event_init(ngx_cycle_t *cycle)
#endif
- if (cycle->old_cycle == NULL) {
- ngx_event_timer_init(cycle);
- }
-
+ ngx_event_timer_init();
ecf = ngx_event_get_conf(cycle->conf_ctx, ngx_event_core_module);
diff --git a/src/event/ngx_event_timer.c b/src/event/ngx_event_timer.c
index 96a992d7b..5e866a491 100644
--- a/src/event/ngx_event_timer.c
+++ b/src/event/ngx_event_timer.c
@@ -14,26 +14,13 @@ ngx_rbtree_t *ngx_event_timer_rbtree;
ngx_rbtree_t ngx_event_timer_sentinel;
-int ngx_event_timer_init(ngx_cycle_t *cycle)
+void ngx_event_timer_init(void)
{
if (ngx_event_timer_rbtree) {
- return NGX_OK;
+ return;
}
ngx_event_timer_rbtree = &ngx_event_timer_sentinel;
-
-#if 0
- ngx_event_timer_sentinel.left = &ngx_event_timer_sentinel;
- ngx_event_timer_sentinel.right = &ngx_event_timer_sentinel;
- ngx_event_timer_sentinel.parent = &ngx_event_timer_sentinel;
-#endif
-
- return NGX_OK;
-}
-
-
-void ngx_event_timer_done(ngx_cycle_t *cycle)
-{
}
diff --git a/src/event/ngx_event_timer.h b/src/event/ngx_event_timer.h
index 7b62c02a0..ee920dc4e 100644
--- a/src/event/ngx_event_timer.h
+++ b/src/event/ngx_event_timer.h
@@ -19,12 +19,7 @@
#define NGX_TIMER_RESOLUTION 1
-#if 0
-int ngx_event_timer_init(void);
-#endif
-/* STUB */ int ngx_event_timer_init(ngx_cycle_t *cycle);
-/* STUB */ void ngx_event_timer_done(ngx_cycle_t *cycle);
-
+void ngx_event_timer_init(void);
ngx_msec_t ngx_event_find_timer(void);
void ngx_event_expire_timers(ngx_msec_t timer);
diff --git a/src/http/ngx_http_request.c b/src/http/ngx_http_request.c
index a6fb08acb..f685bf348 100644
--- a/src/http/ngx_http_request.c
+++ b/src/http/ngx_http_request.c
@@ -921,18 +921,21 @@ void ngx_http_finalize_request(ngx_http_request_t *r, int rc)
clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
- if (r->keepalive != 0 && clcf->keepalive_timeout > 0) {
+ if (!ngx_terminate
+ && !ngx_quit
+ && r->keepalive != 0
+ && clcf->keepalive_timeout > 0)
+ {
ngx_http_set_keepalive(r);
+ return;
} else if (r->lingering_close && clcf->lingering_timeout > 0) {
ngx_http_set_lingering_close(r);
-
- } else {
- ngx_http_close_request(r, 0);
- ngx_http_close_connection(r->connection);
+ return;
}
- return;
+ ngx_http_close_request(r, 0);
+ ngx_http_close_connection(r->connection);
}