comparison src/os/win32/ngx_process_cycle.c @ 3474:d4c4cfdffe30

*) 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
author Igor Sysoev <igor@sysoev.ru>
date Sat, 13 Mar 2010 18:08:07 +0000
parents 5c43621c580a
children ab353d7dc182
comparison
equal deleted inserted replaced
3473:0299cf5856fc 3474:d4c4cfdffe30
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(0);
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(0);
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(0);
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(0);
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(0);
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(0);
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(0);
1012 } 1012 }
1013 } 1013 }
1014 1014
1015 return 0; 1015 return 0;
1016 } 1016 }