diff options
| author | Maxim Dounin <mdounin@mdounin.ru> | 2014-10-27 21:14:07 +0300 |
|---|---|---|
| committer | Maxim Dounin <mdounin@mdounin.ru> | 2014-10-27 21:14:07 +0300 |
| commit | 83f00adc9b03197efac7e6b1c0100df6a7e4052f (patch) | |
| tree | 17aa0992bb607b21125dd834a6852ce4a7d1f514 | |
| parent | 1332e76b20a6a1e871904525d42b17dcaed81eec (diff) | |
| download | nginx-83f00adc9b03197efac7e6b1c0100df6a7e4052f.tar.gz nginx-83f00adc9b03197efac7e6b1c0100df6a7e4052f.tar.bz2 | |
Cache: c->reading flag introduced.
It replaces c->buf in checks in ngx_http_file_cache_open(), making it possible
to reopen the file without clearing c->buf. No functional changes.
| -rw-r--r-- | src/http/ngx_http_cache.h | 1 | ||||
| -rw-r--r-- | src/http/ngx_http_file_cache.c | 5 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/http/ngx_http_cache.h b/src/http/ngx_http_cache.h index a5886631b..b65fd493f 100644 --- a/src/http/ngx_http_cache.h +++ b/src/http/ngx_http_cache.h @@ -101,6 +101,7 @@ struct ngx_http_cache_s { unsigned updating:1; unsigned exists:1; unsigned temp_file:1; + unsigned reading:1; }; diff --git a/src/http/ngx_http_file_cache.c b/src/http/ngx_http_file_cache.c index e1b16e9c6..60ca6e42b 100644 --- a/src/http/ngx_http_file_cache.c +++ b/src/http/ngx_http_file_cache.c @@ -259,7 +259,7 @@ ngx_http_file_cache_open(ngx_http_request_t *r) return NGX_AGAIN; } - if (c->buf) { + if (c->reading) { return ngx_http_file_cache_read(r, c); } @@ -620,9 +620,12 @@ ngx_http_file_cache_aio_read(ngx_http_request_t *r, ngx_http_cache_t *c) n = ngx_file_aio_read(&c->file, c->buf->pos, c->body_start, 0, r->pool); if (n != NGX_AGAIN) { + c->reading = 0; return n; } + c->reading = 1; + c->file.aio->data = r; c->file.aio->handler = ngx_http_cache_aio_event_handler; |
