1 2 /* 3 * Copyright (C) Nginx, Inc. 4 * Copyright (C) Valentin V. Bartenev 5 */ 6 7 8 #ifndef _NGX_THREAD_POOL_H_INCLUDED_ 9 #define _NGX_THREAD_POOL_H_INCLUDED_ 10 11 12 #include <ngx_config.h> 13 #include <ngx_core.h> 14 #include <ngx_event.h> 15 16 17 struct ngx_thread_task_s { 18 ngx_thread_task_t *next; 19 ngx_uint_t id; 20 void *ctx; 21 void (*handler)(void *data, ngx_log_t *log); 22 ngx_event_t event; 23 }; 24 25 26 typedef struct ngx_thread_pool_s ngx_thread_pool_t; 27 28 29 ngx_thread_pool_t *ngx_thread_pool_add(ngx_conf_t *cf, ngx_str_t *name); 30 ngx_thread_pool_t *ngx_thread_pool_get(ngx_cycle_t *cycle, ngx_str_t *name); 31 32 ngx_thread_task_t *ngx_thread_task_alloc(ngx_pool_t *pool, size_t size); 33 ngx_int_t ngx_thread_task_post(ngx_thread_pool_t *tp, ngx_thread_task_t *task); 34 35 36 #endif /* _NGX_THREAD_POOL_H_INCLUDED_ */ 37