1*0Sigor@sysoev.ru 2*0Sigor@sysoev.ru /* 3*0Sigor@sysoev.ru * Copyright (C) Igor Sysoev 4*0Sigor@sysoev.ru * Copyright (C) NGINX, Inc. 5*0Sigor@sysoev.ru */ 6*0Sigor@sysoev.ru 7*0Sigor@sysoev.ru 8*0Sigor@sysoev.ru #include <nxt_main.h> 9*0Sigor@sysoev.ru 10*0Sigor@sysoev.ru 11*0Sigor@sysoev.ru typedef struct { 12*0Sigor@sysoev.ru nxt_cache_node_t node; 13*0Sigor@sysoev.ru nxt_file_t file; 14*0Sigor@sysoev.ru } nxt_file_cache_t; 15*0Sigor@sysoev.ru 16*0Sigor@sysoev.ru 17*0Sigor@sysoev.ru void nxt_job_file_cache_read(nxt_cache_t * cache,nxt_job_file_t * jbf)18*0Sigor@sysoev.runxt_job_file_cache_read(nxt_cache_t *cache, nxt_job_file_t *jbf) 19*0Sigor@sysoev.ru { 20*0Sigor@sysoev.ru nxt_file_cache_node_t *node; 21*0Sigor@sysoev.ru 22*0Sigor@sysoev.ru node = nxt_cache_find(cache); 23*0Sigor@sysoev.ru 24*0Sigor@sysoev.ru if (node != NULL) { 25*0Sigor@sysoev.ru 26*0Sigor@sysoev.ru if (node->fd != -1) { 27*0Sigor@sysoev.ru nxt_job_return(&jbf->job, jbf->ready_handler); 28*0Sigor@sysoev.ru return; 29*0Sigor@sysoev.ru } 30*0Sigor@sysoev.ru 31*0Sigor@sysoev.ru if (node->error != 0) { 32*0Sigor@sysoev.ru nxt_job_return(&jbf->job, jbf->error_handler); 33*0Sigor@sysoev.ru return; 34*0Sigor@sysoev.ru } 35*0Sigor@sysoev.ru 36*0Sigor@sysoev.ru if (node->accessed + 60 > nxt_thread_time()) { 37*0Sigor@sysoev.ru jbf->job.thread_pool = NULL; 38*0Sigor@sysoev.ru } 39*0Sigor@sysoev.ru } 40*0Sigor@sysoev.ru 41*0Sigor@sysoev.ru nxt_job_file_read(jbf); 42*0Sigor@sysoev.ru } 43