Mercurial > hg > nginx
diff src/core/ngx_garbage_collector.c @ 190:02a715e85df1
nginx-0.0.1-2003-11-19-00:34:08 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Tue, 18 Nov 2003 21:34:08 +0000 |
parents | c1f3a3c7c5db |
children | 2357fa41738a |
line wrap: on
line diff
--- a/src/core/ngx_garbage_collector.c +++ b/src/core/ngx_garbage_collector.c @@ -1,24 +1,11 @@ #include <ngx_config.h> #include <ngx_core.h> - - -typedef struct ngx_gc_s ngx_gc_t; - -typedef int (*ngx_gc_handler_pt) (ngx_gc_t *ctx, ngx_str_t *name, - ngx_dir_t *dir); +#include <ngx_garbage_collector.h> -static int ngx_garbage_collector_temp_handler(ngx_gc_t *ctx, ngx_str_t *name, - ngx_dir_t *dir); - -struct ngx_gc_s { - ngx_path_t *path; - u_int deleted; - off_t freed; - ngx_gc_handler_pt handler; - ngx_log_t *log; -}; +int ngx_garbage_collector_temp_handler(ngx_gc_t *ctx, ngx_str_t *name, + ngx_dir_t *dir); static int ngx_collect_garbage(ngx_gc_t *ctx, ngx_str_t *dname, int level); @@ -64,27 +51,20 @@ void garbage_collector() #endif -void stub_init(ngx_log_t *log) +void stub_init(ngx_cycle_t *cycle) { - ngx_gc_t *ctx; - ngx_path_t path; - - if (!(ctx = ngx_alloc(sizeof(ngx_gc_t), log))) { - return; - } + int i; + ngx_gc_t ctx; + ngx_path_t **path; - path.name.len = 4; - path.name.data = "temp"; - path.len = 5; - path.level[0] = 1; - path.level[1] = 2; - path.level[2] = 0; + path = cycle->pathes.elts; + for (i = 0; i < cycle->pathes.nelts; i++) { + ctx.path = path[i]; + ctx.log = cycle->log; + ctx.handler = path[i]->gc_handler; - ctx->path = &path; - ctx->log = log; - ctx->handler = ngx_garbage_collector_temp_handler; - - ngx_collect_garbage(ctx, &path.name, 0); + ngx_collect_garbage(&ctx, &path[i]->name, 0); + } } @@ -254,8 +234,8 @@ ngx_log_debug(ctx->log, "file %s" _ fnam } -static int ngx_garbage_collector_temp_handler(ngx_gc_t *ctx, ngx_str_t *name, - ngx_dir_t *dir) +int ngx_garbage_collector_temp_handler(ngx_gc_t *ctx, ngx_str_t *name, + ngx_dir_t *dir) { /* * we use mtime only and do not use atime because: @@ -279,5 +259,6 @@ static int ngx_garbage_collector_temp_ha ctx->deleted++; ctx->freed += ngx_de_size(dir); + return NGX_OK; }