1. 程式人生 > >libevent源碼分析1 ----evnet相關結構體分析

libevent源碼分析1 ----evnet相關結構體分析

所有 active 復用 超時 handling 源碼 執行 evb tel

位於代碼event-internal.h中。

event_base類似事件的集合,你創建一個事件,必須將該事件指定一個集合。

struct event_base {
50 const struct eventop *evsel; /*evsel和evbase就類比與類和對象之間的關系,evbase是evsel的
51 一個具體實現,指在這裏使用的復用模型*/
52 void *evbase;
53 /*這個event_base所關註的事件數目*/
54 int event_count; /* counts number of total events */
55 /*這個event_base中激活事件的數目*/
56 int event_count_active; /* counts number of active events */
57 /*判斷循環退出的條件*/
58 int event_gotterm; /* Set to terminate loop */
59 int event_break; /* Set to terminate loop immediately */
60
61 /* active event management */
62 /*只存事件鏈表,執行存放不同優先級事件的鏈,所以使用二級指針,激活事件的鏈表*/
63 struct event_list **activequeues;
64 /*事件鏈表的數目,數據是根據優先級來決定的*/
65 int nactivequeues;
66
67 /* signal handling info */
68 /*處理信號事件的單獨結構體*/
69 struct evsignal_info sig;
70 /*存放所有事件的鏈表*/
71 struct event_list eventqueue;
72 struct timeval event_tv;
73 /*管理和超時事件相關的時間小頂堆*/
74 struct min_heap timeheap;
75 /*存放時間的時間緩沖*/
76 struct timeval tv_cache;
77 };

libevent源碼分析1 ----evnet相關結構體分析