Nginx事件模組init

2021-07-22 17:51:02 字數 1096 閱讀 3134

首先在nginx裡面最重的是下述三個模組

ngx_events_module,

ngx_event_core_module,

ngx_epoll_module,

ngx_events_module
這個模組屬於core_module在程式起來的時候就init, 它的commands成員只有乙個,也就是說只關注配置檔案中events這一標籤。

static ngx_command_t  ngx_events_commands = ,

ngx_null_command

};

nginx在關注了這一標籤之後會執行ngx_events_block函式的**設定,ngx_events_block主要的工作有

ngx_event_max_module = ngx_count_modules(cf->cycle, ngx_event_module);

//遍歷nginx裡面的全域性陣列modules,如果型別為ngx_event_module,則設定ctx_index,

//計算出當前有多 少個event module

下面分別呼叫event module的create conf和init conf

值得注意的是(*ctx)[x] 指向的是具體的模組

void               ***ctx;

ctx = ngx_pcalloc(cf->pool, sizeof(void *));

if (ctx == null)

*ctx = ngx_pcalloc(cf->pool, ngx_event_max_module * sizeof(void *));

if (*ctx == null)

*(void **) conf = ctx;

for (i = 0; cf->cycle->modules[i]; i++)

m = cf->cycle->modules[i]->ctx;

if (m->create_conf)

}}

Nginx事件模組

這是事件模組都必須實現的介面。typedef struct ngx event module t typedef struct ngx event actions t typedef struct ngx event s ngx event t struct ngx event s 其中的最核心的是...

Python模組包中 init

在eclipse中用pydev開發python指令碼時,我遇到了乙個這樣的現象,當我新建乙個pydev package時,總會自動地生成乙個空的 init py檔案,因為是python新手,所以很不了解這個空檔案的作用是什麼,因為沒有什麼東西可寫在這裡,所以我直接把這個檔案給刪掉了,結果我的包圖示自...

Python模組包中 init

在eclipse中用pydev開發python指令碼時,我遇到了乙個這樣的現象,當我新建乙個pydev package時,總會自動地生成乙個空的 init py檔案,因為是python新手,所以很不了解這個空檔案的作用是什麼,因為沒有什麼東西可寫在這裡,所以我直接把這個檔案給刪掉了,結果我的包圖示自...