xref: /unit/src/nxt_mem_pool_cleanup.c (revision 20:4dc92b438f58)
10Sigor@sysoev.ru 
20Sigor@sysoev.ru /*
30Sigor@sysoev.ru  * Copyright (C) Igor Sysoev
40Sigor@sysoev.ru  * Copyright (C) NGINX, Inc.
50Sigor@sysoev.ru  */
60Sigor@sysoev.ru 
70Sigor@sysoev.ru #include <nxt_main.h>
80Sigor@sysoev.ru 
90Sigor@sysoev.ru 
10*20Sigor@sysoev.ru static void nxt_mem_pool_file_cleanup_handler(nxt_task_t *task, void *data);
110Sigor@sysoev.ru 
120Sigor@sysoev.ru 
130Sigor@sysoev.ru nxt_mem_pool_cleanup_t *
nxt_mem_pool_file_cleanup(nxt_mem_pool_t * mp,nxt_file_t * file)140Sigor@sysoev.ru nxt_mem_pool_file_cleanup(nxt_mem_pool_t *mp, nxt_file_t *file)
150Sigor@sysoev.ru {
160Sigor@sysoev.ru     nxt_mem_pool_cleanup_t  *mpcl;
170Sigor@sysoev.ru 
180Sigor@sysoev.ru     mpcl = nxt_mem_pool_cleanup(mp, 0);
190Sigor@sysoev.ru 
200Sigor@sysoev.ru     if (nxt_fast_path(mpcl != NULL)) {
210Sigor@sysoev.ru         mpcl->handler = nxt_mem_pool_file_cleanup_handler;
220Sigor@sysoev.ru         mpcl->data = file;
230Sigor@sysoev.ru     }
240Sigor@sysoev.ru 
250Sigor@sysoev.ru     return mpcl;
260Sigor@sysoev.ru }
270Sigor@sysoev.ru 
280Sigor@sysoev.ru 
290Sigor@sysoev.ru static void
nxt_mem_pool_file_cleanup_handler(nxt_task_t * task,void * data)30*20Sigor@sysoev.ru nxt_mem_pool_file_cleanup_handler(nxt_task_t *task, void *data)
310Sigor@sysoev.ru {
320Sigor@sysoev.ru     nxt_file_t  *file;
330Sigor@sysoev.ru 
340Sigor@sysoev.ru     file = data;
350Sigor@sysoev.ru 
360Sigor@sysoev.ru     if (file->fd != NXT_FILE_INVALID) {
37*20Sigor@sysoev.ru         nxt_file_close(task, file);
380Sigor@sysoev.ru     }
390Sigor@sysoev.ru }
40