Mercurial > hg > nginx
changeset 3022:56407044c593
win32 cache loader support
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 11 Aug 2009 08:14:43 +0000 |
parents | cf1d868787a1 |
children | 7d5501988fe3 |
files | src/os/win32/ngx_process_cycle.c |
diffstat | 1 files changed, 33 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/os/win32/ngx_process_cycle.c Tue Aug 11 07:55:39 2009 +0000 +++ b/src/os/win32/ngx_process_cycle.c Tue Aug 11 08:14:43 2009 +0000 @@ -25,6 +25,7 @@ static ngx_thread_value_t __stdcall ngx_worker_thread(void *data); static ngx_thread_value_t __stdcall ngx_cache_manager_thread(void *data); static void ngx_cache_manager_process_handler(void); +static ngx_thread_value_t __stdcall ngx_cache_loader_thread(void *data); ngx_uint_t ngx_process; @@ -670,6 +671,10 @@ goto failed; } + if (ngx_create_thread(&cmtid, ngx_cache_loader_thread, NULL, log) != 0) { + goto failed; + } + for ( ;; ) { ev = WaitForMultipleObjects(3, events, 0, INFINITE); @@ -985,6 +990,34 @@ } +static ngx_thread_value_t __stdcall +ngx_cache_loader_thread(void *data) +{ + ngx_uint_t i; + ngx_path_t **path; + ngx_cycle_t *cycle; + + ngx_msleep(60000); + + cycle = (ngx_cycle_t *) ngx_cycle; + + path = cycle->pathes.elts; + for (i = 0; i < cycle->pathes.nelts; i++) { + + if (ngx_terminate || ngx_quit) { + break; + } + + if (path[i]->loader) { + path[i]->loader(path[i]->data); + ngx_time_update(0, 0); + } + } + + return 0; +} + + void ngx_single_process_cycle(ngx_cycle_t *cycle) {