Lines Matching defs:base

72 settime(struct event_base* base)
74 if(gettimeofday(base->time_tv, NULL) < 0) {
78 *base->time_secs = (time_t)base->time_tv->tv_sec;
88 * @param base: event base to look in.
93 find_fd(struct event_base* base, int fd)
96 for(i=0; i<base->max; i++) {
97 if(base->items[i]->ev_fd == fd)
104 /** Find ptr in base array */
117 struct event_base* base = (struct event_base*)malloc(
119 if(!base)
121 memset(base, 0, sizeof(*base));
122 base->time_secs = time_secs;
123 base->time_tv = time_tv;
124 if(settime(base) < 0) {
125 event_base_free(base);
128 base->items = (struct event**)calloc(WSK_MAX_ITEMS,
130 if(!base->items) {
131 event_base_free(base);
134 base->cap = WSK_MAX_ITEMS;
135 base->max = 0;
136 base->times = rbtree_create(mini_ev_cmp);
137 if(!base->times) {
138 event_base_free(base);
141 base->signals = (struct event**)calloc(MAX_SIG, sizeof(struct event*));
142 if(!base->signals) {
143 event_base_free(base);
146 base->tcp_stickies = 0;
147 base->tcp_reinvigorated = 0;
149 return base;
163 static void handle_timeouts(struct event_base* base, struct timeval* now,
172 while((rbnode_t*)(p = (struct event*)rbtree_first(base->times))
194 (void)rbtree_delete(base->times, p);
230 static int handle_select(struct event_base* base, struct timeval* wait)
247 if(base->tcp_stickies) {
256 for(i=0; i<base->max; i++) {
257 if(base->items[i]->ev_fd == -1 && !base->items[i]->is_signal)
259 eventlist[numwait] = base->items[i];
260 base->waitfor[numwait++] = base->items[i]->hEvent;
266 "timeout=%d", base->max, numwait, (int)wait, (int)timeout);
276 ret = WSAWaitForMultipleEvents(numwait, base->waitfor,
296 if(settime(base) < 0)
300 if(base->tcp_stickies)
307 if(!base->waitfor[i])
315 if(base->need_to_exit)
324 if(!base->waitfor[i])
333 base->waitfor[i], /* reset the event handle */
418 if(base->tcp_reinvigorated) {
420 base->tcp_reinvigorated = 0;
423 base->tcp_stickies = newstickies;
428 int event_base_dispatch(struct event_base *base)
431 if(settime(base) < 0)
433 while(!base->need_to_exit)
436 handle_timeouts(base, base->time_tv, &wait);
437 if(base->need_to_exit)
440 if(handle_select(base, &wait) < 0) {
441 if(base->need_to_exit)
449 int event_base_loopexit(struct event_base *base,
453 base->need_to_exit = 1;
457 void event_base_free(struct event_base *base)
460 if(!base)
462 if(base->items)
463 free(base->items);
464 if(base->times)
465 free(base->times);
466 if(base->signals)
467 free(base->signals);
468 free(base);
484 int event_base_set(struct event_base *base, struct event *ev)
486 ev->ev_base = base;
611 /** which base gets to handle signals */
656 * possibly run an empty handler loop to reset the base
661 int winsock_register_wsaevent(struct event_base* base, struct event* ev,
664 if(base->max == base->cap)
674 ev->ev_base = base;