comparison src/os/win32/ngx_process_cycle.c @ 3587:e1409e56ba7c stable-0.7

merge r3473, r3474, r3385, r3386, r3537: signal processing stability: *) use sys_errlist[] in signal handler instead of non Async-Signal-Safe strerror_r() *) do not update time in the timer signal handler, since localtime_r() is not Async-Signal-Safe function *) use previously cached GMT offset value to update time from a signal handler *) change ngx_time_update() interface since there are no notification methods those return time *) introduce ngx_time_sigsafe_update() to update the error log time only *) change ngx_time_update() interface
author Igor Sysoev <igor@sysoev.ru>
date Mon, 07 Jun 2010 10:35:08 +0000
parents 3354dfba9da4
children
comparison
equal deleted inserted replaced
3586:2d21e02fc01d 3587:e1409e56ba7c
138 } 138 }
139 139
140 ev = WaitForMultipleObjects(nev, events, 0, timeout); 140 ev = WaitForMultipleObjects(nev, events, 0, timeout);
141 141
142 err = ngx_errno; 142 err = ngx_errno;
143 ngx_time_update(0, 0); 143 ngx_time_update();
144 144
145 ngx_log_debug1(NGX_LOG_DEBUG_CORE, cycle->log, 0, 145 ngx_log_debug1(NGX_LOG_DEBUG_CORE, cycle->log, 0,
146 "master WaitForMultipleObjects: %ul", ev); 146 "master WaitForMultipleObjects: %ul", ev);
147 147
148 if (ev == WAIT_OBJECT_0) { 148 if (ev == WAIT_OBJECT_0) {
677 677
678 for ( ;; ) { 678 for ( ;; ) {
679 ev = WaitForMultipleObjects(3, events, 0, INFINITE); 679 ev = WaitForMultipleObjects(3, events, 0, INFINITE);
680 680
681 err = ngx_errno; 681 err = ngx_errno;
682 ngx_time_update(0, 0); 682 ngx_time_update();
683 683
684 ngx_log_debug1(NGX_LOG_DEBUG_CORE, log, 0, 684 ngx_log_debug1(NGX_LOG_DEBUG_CORE, log, 0,
685 "worker WaitForMultipleObjects: %ul", ev); 685 "worker WaitForMultipleObjects: %ul", ev);
686 686
687 if (ev == WAIT_OBJECT_0) { 687 if (ev == WAIT_OBJECT_0) {
736 736
737 for ( ;; ) { 737 for ( ;; ) {
738 ev = WaitForMultipleObjects(nev, events, 0, INFINITE); 738 ev = WaitForMultipleObjects(nev, events, 0, INFINITE);
739 739
740 err = ngx_errno; 740 err = ngx_errno;
741 ngx_time_update(0, 0); 741 ngx_time_update();
742 742
743 ngx_log_debug1(NGX_LOG_DEBUG_CORE, log, 0, 743 ngx_log_debug1(NGX_LOG_DEBUG_CORE, log, 0,
744 "worker exit WaitForMultipleObjects: %ul", ev); 744 "worker exit WaitForMultipleObjects: %ul", ev);
745 745
746 if (ev == WAIT_OBJECT_0) { 746 if (ev == WAIT_OBJECT_0) {
905 905
906 for ( ;; ) { 906 for ( ;; ) {
907 ev = WaitForMultipleObjects(2, events, 0, INFINITE); 907 ev = WaitForMultipleObjects(2, events, 0, INFINITE);
908 908
909 err = ngx_errno; 909 err = ngx_errno;
910 ngx_time_update(0, 0); 910 ngx_time_update();
911 911
912 ngx_log_debug1(NGX_LOG_DEBUG_CORE, cycle->log, 0, 912 ngx_log_debug1(NGX_LOG_DEBUG_CORE, cycle->log, 0,
913 "cache manager WaitForMultipleObjects: %ul", ev); 913 "cache manager WaitForMultipleObjects: %ul", ev);
914 914
915 if (ev == WAIT_FAILED) { 915 if (ev == WAIT_FAILED) {
966 if (path[i]->manager) { 966 if (path[i]->manager) {
967 n = path[i]->manager(path[i]->data); 967 n = path[i]->manager(path[i]->data);
968 968
969 next = (n <= next) ? n : next; 969 next = (n <= next) ? n : next;
970 970
971 ngx_time_update(0, 0); 971 ngx_time_update();
972 } 972 }
973 } 973 }
974 974
975 if (next == 0) { 975 if (next == 0) {
976 next = 1; 976 next = 1;
978 978
979 ev = WaitForSingleObject(ngx_cache_manager_event, (u_long) next * 1000); 979 ev = WaitForSingleObject(ngx_cache_manager_event, (u_long) next * 1000);
980 980
981 if (ev != WAIT_TIMEOUT) { 981 if (ev != WAIT_TIMEOUT) {
982 982
983 ngx_time_update(0, 0); 983 ngx_time_update();
984 984
985 ngx_log_debug1(NGX_LOG_DEBUG_CORE, ngx_cycle->log, 0, 985 ngx_log_debug1(NGX_LOG_DEBUG_CORE, ngx_cycle->log, 0,
986 "cache manager WaitForSingleObject: %ul", ev); 986 "cache manager WaitForSingleObject: %ul", ev);
987 } 987 }
988 } 988 }
1006 break; 1006 break;
1007 } 1007 }
1008 1008
1009 if (path[i]->loader) { 1009 if (path[i]->loader) {
1010 path[i]->loader(path[i]->data); 1010 path[i]->loader(path[i]->data);
1011 ngx_time_update(0, 0); 1011 ngx_time_update();
1012 } 1012 }
1013 } 1013 }
1014 1014
1015 return 0; 1015 return 0;
1016 } 1016 }