⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ngx_thread.h

📁 nginx 反向代理0.7.1版本 用于实现反向代理
💻 H
字号:
/* * Copyright (C) Igor Sysoev */#ifndef _NGX_THREAD_H_INCLUDED_#define _NGX_THREAD_H_INCLUDED_#include <ngx_config.h>#include <ngx_core.h>#if (NGX_THREADS)#define NGX_MAX_THREADS      128#if (NGX_USE_RFORK)#include <ngx_freebsd_rfork_thread.h>#else /* use pthreads */#include <pthread.h>typedef pthread_t                    ngx_tid_t;#define ngx_thread_self()            pthread_self()#define ngx_log_tid                  (int) ngx_thread_self()#if (NGX_FREEBSD) && !(NGX_LINUXTHREADS)#define NGX_TID_T_FMT                "%p"#else#define NGX_TID_T_FMT                "%d"#endiftypedef pthread_key_t                ngx_tls_key_t;#define ngx_thread_key_create(key)   pthread_key_create(key, NULL)#define ngx_thread_key_create_n      "pthread_key_create()"#define ngx_thread_set_tls           pthread_setspecific#define ngx_thread_set_tls_n         "pthread_setspecific()"#define ngx_thread_get_tls           pthread_getspecific#define NGX_MUTEX_LIGHT     0typedef struct {    pthread_mutex_t   mutex;    ngx_log_t        *log;} ngx_mutex_t;typedef struct {    pthread_cond_t    cond;    ngx_log_t        *log;} ngx_cond_t;#define ngx_thread_sigmask     pthread_sigmask#define ngx_thread_sigmask_n  "pthread_sigmask()"#define ngx_thread_join(t, p)  pthread_join(t, p)#define ngx_setthrtitle(n)ngx_int_t ngx_mutex_trylock(ngx_mutex_t *m);void ngx_mutex_lock(ngx_mutex_t *m);void ngx_mutex_unlock(ngx_mutex_t *m);#endif#define ngx_thread_volatile   volatiletypedef struct {    ngx_tid_t    tid;    ngx_cond_t  *cv;    ngx_uint_t   state;} ngx_thread_t;#define NGX_THREAD_FREE   1#define NGX_THREAD_BUSY   2#define NGX_THREAD_EXIT   3#define NGX_THREAD_DONE   4extern ngx_int_t              ngx_threads_n;extern volatile ngx_thread_t  ngx_threads[NGX_MAX_THREADS];typedef void *  ngx_thread_value_t;ngx_int_t ngx_init_threads(int n, size_t size, ngx_cycle_t *cycle);ngx_err_t ngx_create_thread(ngx_tid_t *tid,    ngx_thread_value_t (*func)(void *arg), void *arg, ngx_log_t *log);ngx_mutex_t *ngx_mutex_init(ngx_log_t *log, ngx_uint_t flags);void ngx_mutex_destroy(ngx_mutex_t *m);ngx_cond_t *ngx_cond_init(ngx_log_t *log);void ngx_cond_destroy(ngx_cond_t *cv);ngx_int_t ngx_cond_wait(ngx_cond_t *cv, ngx_mutex_t *m);ngx_int_t ngx_cond_signal(ngx_cond_t *cv);#else /* !NGX_THREADS */#define ngx_thread_volatile#define ngx_log_tid           0#define NGX_TID_T_FMT         "%d"#define ngx_mutex_trylock(m)  NGX_OK#define ngx_mutex_lock(m)#define ngx_mutex_unlock(m)#define ngx_cond_signal(cv)#define ngx_thread_main()     1#endif#endif /* _NGX_THREAD_H_INCLUDED_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -