Welcome! Log In Create A New Profile

Advanced

[nginx] Win32: fixed cpu hog by cache manager on exit (ticket #5...

Maxim Dounin
March 31, 2014 01:42PM
details: http://hg.nginx.org/nginx/rev/b74f1106f920
branches:
changeset: 5633:b74f1106f920
user: Maxim Dounin <mdounin@mdounin.ru>
date: Mon Mar 31 21:38:28 2014 +0400
description:
Win32: fixed cpu hog by cache manager on exit (ticket #514).

The "ngx_quit" may be reset by the worker thread before it's seen
by a ngx_cache_manager_thread(), resulting in an infinite loop. Make
sure to test ngx_exiting as well.

diffstat:

src/os/win32/ngx_process_cycle.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)

diffs (30 lines):

diff --git a/src/os/win32/ngx_process_cycle.c b/src/os/win32/ngx_process_cycle.c
--- a/src/os/win32/ngx_process_cycle.c
+++ b/src/os/win32/ngx_process_cycle.c
@@ -926,7 +926,7 @@ ngx_cache_manager_thread(void *data)
* ev == WAIT_ABANDONED_0 + 1
*/

- if (ngx_terminate || ngx_quit) {
+ if (ngx_terminate || ngx_quit || ngx_exiting) {
ngx_log_error(NGX_LOG_NOTICE, cycle->log, 0, "exiting");
return 0;
}
@@ -936,7 +936,7 @@ ngx_cache_manager_thread(void *data)

for ( ;; ) {

- if (ngx_terminate || ngx_quit) {
+ if (ngx_terminate || ngx_quit || ngx_exiting) {
ngx_log_error(NGX_LOG_NOTICE, cycle->log, 0, "exiting");
break;
}
@@ -1005,7 +1005,7 @@ ngx_cache_loader_thread(void *data)
path = cycle->paths.elts;
for (i = 0; i < cycle->paths.nelts; i++) {

- if (ngx_terminate || ngx_quit) {
+ if (ngx_terminate || ngx_quit || ngx_exiting) {
break;
}


_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[nginx] Win32: fixed cpu hog by cache manager on exit (ticket #5...

Maxim Dounin 479 March 31, 2014 01:42PM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 242
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready