位於代碼event-internal.h中。oop
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 };
對象