Lines Matching refs:base

76 settime(struct event_base* base)  in settime()  argument
78 if(gettimeofday(base->time_tv, NULL) < 0) { in settime()
82 *base->time_secs = (time_t)base->time_tv->tv_sec; in settime()
90 struct event_base* base = (struct event_base*)malloc( in event_init() local
92 if(!base) in event_init()
94 memset(base, 0, sizeof(*base)); in event_init()
95 base->time_secs = time_secs; in event_init()
96 base->time_tv = time_tv; in event_init()
97 if(settime(base) < 0) { in event_init()
98 event_base_free(base); in event_init()
101 base->times = rbtree_create(mini_ev_cmp); in event_init()
102 if(!base->times) { in event_init()
103 event_base_free(base); in event_init()
106 base->capfd = MAX_FDS; in event_init()
108 if((int)FD_SETSIZE < base->capfd) in event_init()
109 base->capfd = (int)FD_SETSIZE; in event_init()
111 base->fds = (struct event**)calloc((size_t)base->capfd, in event_init()
113 if(!base->fds) { in event_init()
114 event_base_free(base); in event_init()
117 base->signals = (struct event**)calloc(MAX_SIG, sizeof(struct event*)); in event_init()
118 if(!base->signals) { in event_init()
119 event_base_free(base); in event_init()
123 FD_ZERO(&base->reads); in event_init()
124 FD_ZERO(&base->writes); in event_init()
126 return base; in event_init()
142 static void handle_timeouts(struct event_base* base, struct timeval* now, in handle_timeouts() argument
150 while((rbnode_type*)(p = (struct event*)rbtree_first(base->times)) in handle_timeouts()
170 (void)rbtree_delete(base->times, p); in handle_timeouts()
178 static int handle_select(struct event_base* base, struct timeval* wait) in handle_select() argument
187 memmove(&r, &base->reads, sizeof(fd_set)); in handle_select()
188 memmove(&w, &base->writes, sizeof(fd_set)); in handle_select()
189 memmove(&base->ready, &base->content, sizeof(fd_set)); in handle_select()
191 if((ret = select(base->maxfd+1, &r, &w, NULL, wait)) == -1) { in handle_select()
193 if(settime(base) < 0) in handle_select()
200 if(settime(base) < 0) in handle_select()
203 for(i=0; i<base->maxfd+1; i++) { in handle_select()
205 if(!base->fds[i] || !(FD_ISSET(i, &base->ready))) { in handle_select()
216 bits &= base->fds[i]->ev_events; in handle_select()
219 base->fds[i]->ev_callback)); in handle_select()
220 (*base->fds[i]->ev_callback)(base->fds[i]->ev_fd, in handle_select()
221 bits, base->fds[i]->ev_arg); in handle_select()
230 int event_base_dispatch(struct event_base* base) in event_base_dispatch() argument
233 if(settime(base) < 0) in event_base_dispatch()
235 while(!base->need_to_exit) in event_base_dispatch()
238 handle_timeouts(base, base->time_tv, &wait); in event_base_dispatch()
239 if(base->need_to_exit) in event_base_dispatch()
242 if(handle_select(base, &wait) < 0) { in event_base_dispatch()
243 if(base->need_to_exit) in event_base_dispatch()
252 int event_base_loopexit(struct event_base* base, in event_base_loopexit() argument
255 base->need_to_exit = 1; in event_base_loopexit()
260 void event_base_free(struct event_base* base) in event_base_free() argument
262 if(!base) in event_base_free()
264 free(base->times); in event_base_free()
265 free(base->fds); in event_base_free()
266 free(base->signals); in event_base_free()
267 free(base); in event_base_free()
284 int event_base_set(struct event_base* base, struct event* ev) in event_base_set() argument
286 ev->ev_base = base; in event_base_set()