Home | History | Annotate | Download | only in libevent

Lines Matching refs:ev

210 	struct event *ev;
220 for (ev = TAILQ_FIRST(&base->eventqueue); ev; ) {
221 struct event *next = TAILQ_NEXT(ev, ev_next);
222 if (!(ev->ev_flags & EVLIST_INTERNAL)) {
223 event_del(ev);
226 ev = next;
228 while ((ev = min_heap_top(&base->timeheap)) != NULL) {
229 event_del(ev);
234 for (ev = TAILQ_FIRST(base->activequeues[i]); ev; ) {
235 struct event *next = TAILQ_NEXT(ev, ev_active_next);
236 if (!(ev->ev_flags & EVLIST_INTERNAL)) {
237 event_del(ev);
240 ev = next;
273 struct event *ev;
298 TAILQ_FOREACH(ev, &base->eventqueue, ev_next) {
299 if (evsel->add(evbase, ev) == -1)
359 struct event *ev;
373 for (ev = TAILQ_FIRST(activeq); ev; ev = TAILQ_FIRST(activeq)) {
374 if (ev->ev_events & EV_PERSIST)
375 event_queue_remove(base, ev, EVLIST_ACTIVE);
377 event_del(ev);
380 ncalls = ev->ev_ncalls;
381 ev->ev_pncalls = &ncalls;
384 ev->ev_ncalls = ncalls;
385 (*ev->ev_callback)((int)ev->ev_fd, ev->ev_res, ev->ev_arg);
542 struct event ev;
592 evtimer_set(&eonce->ev, event_once_cb, eonce);
596 event_set(&eonce->ev, fd, events, event_once_cb, eonce);
603 res = event_base_set(base, &eonce->ev);
605 res = event_add(&eonce->ev, tv);
615 event_set(struct event *ev, int fd, short events,
619 ev->ev_base = current_base;
621 ev->ev_callback = callback;
622 ev->ev_arg = arg;
623 ev->ev_fd = fd;
624 ev->ev_events = events;
625 ev->ev_res = 0;
626 ev->ev_flags = EVLIST_INIT;
627 ev->ev_ncalls = 0;
628 ev->ev_pncalls = NULL;
630 min_heap_elem_init(ev);
634 ev->ev_pri = current_base->nactivequeues/2;
638 event_base_set(struct event_base *base, struct event *ev)
641 if (ev->ev_flags != EVLIST_INIT)
644 ev->ev_base = base;
645 ev->ev_pri = base->nactivequeues/2;
656 event_priority_set(struct event *ev, int pri)
658 if (ev->ev_flags & EVLIST_ACTIVE)
660 if (pri < 0 || pri >= ev->ev_base->nactivequeues)
663 ev->ev_pri = pri;
673 event_pending(struct event *ev, short event, struct timeval *tv)
678 if (ev->ev_flags & EVLIST_INSERTED)
679 flags |= (ev->ev_events & (EV_READ|EV_WRITE|EV_SIGNAL));
680 if (ev->ev_flags & EVLIST_ACTIVE)
681 flags |= ev->ev_res;
682 if (ev->ev_flags & EVLIST_TIMEOUT)
689 gettime(ev->ev_base, &now);
690 evutil_timersub(&ev->ev_timeout, &now, &res);
700 event_add(struct event *ev, const struct timeval *tv)
702 struct event_base *base = ev->ev_base;
709 ev,
710 ev->ev_events & EV_READ ? "EV_READ " : " ",
711 ev->ev_events & EV_WRITE ? "EV_WRITE " : " ",
713 ev->ev_callback));
715 assert(!(ev->ev_flags & ~EVLIST_ALL));
721 if (tv != NULL && !(ev->ev_flags & EVLIST_TIMEOUT)) {
727 if ((ev->ev_events & (EV_READ|EV_WRITE|EV_SIGNAL)) &&
728 !(ev->ev_flags & (EVLIST_INSERTED|EVLIST_ACTIVE))) {
729 res = evsel->add(evbase, ev);
731 ev, EVLIST_INSERTED);
745 if (ev->ev_flags & EVLIST_TIMEOUT)
746 event_queue_remove(base, ev, EVLIST_TIMEOUT);
751 if ((ev->ev_flags & EVLIST_ACTIVE) &&
752 (ev->ev_res & EV_TIMEOUT)) {
756 if (ev->ev_ncalls && ev->ev_pncalls) {
758 *ev->ev_pncalls = 0;
761 event_queue_remove(base, ev, EVLIST_ACTIVE);
765 evutil_timeradd(&now, tv, &ev->ev_timeout);
769 tv->tv_sec, ev->ev_callback));
771 event_queue_insert(base, ev, EVLIST_TIMEOUT);
778 event_del(struct event *ev)
785 ev, ev->ev_callback));
788 if (ev->ev_base == NULL)
791 base = ev->ev_base;
795 assert(!(ev->ev_flags & ~EVLIST_ALL));
798 if (ev->ev_ncalls && ev->ev_pncalls) {
800 *ev->ev_pncalls = 0;
803 if (ev->ev_flags & EVLIST_TIMEOUT)
804 event_queue_remove(base, ev, EVLIST_TIMEOUT);
806 if (ev->ev_flags & EVLIST_ACTIVE)
807 event_queue_remove(base, ev, EVLIST_ACTIVE);
809 if (ev->ev_flags & EVLIST_INSERTED) {
810 event_queue_remove(base, ev, EVLIST_INSERTED);
811 return (evsel->del(evbase, ev));
818 event_active(struct event *ev, int res, short ncalls)
821 if (ev->ev_flags & EVLIST_ACTIVE) {
822 ev->ev_res |= res;
826 ev->ev_res = res;
827 ev->ev_ncalls = ncalls;
828 ev->ev_pncalls = NULL;
829 event_queue_insert(ev->ev_base, ev, EVLIST_ACTIVE);
836 struct event *ev;
839 if ((ev = min_heap_top(&base->timeheap)) == NULL) {
848 if (evutil_timercmp(&ev->ev_timeout, &now, <=)) {
853 evutil_timersub(&ev->ev_timeout, &now, tv);
907 struct event *ev;
914 while ((ev = min_heap_top(&base->timeheap))) {
915 if (evutil_timercmp(&ev->ev_timeout, &now, >))
919 event_del(ev);
922 ev->ev_callback));
923 event_active(ev, EV_TIMEOUT, 1);
928 event_queue_remove(struct event_base *base, struct event *ev, int queue)
930 if (!(ev->ev_flags & queue))
932 ev, ev->ev_fd, queue);
934 if (~ev->ev_flags & EVLIST_INTERNAL)
937 ev->ev_flags &= ~queue;
940 TAILQ_REMOVE(&base->eventqueue, ev, ev_next);
944 TAILQ_REMOVE(base->activequeues[ev->ev_pri],
945 ev, ev_active_next);
948 min_heap_erase(&base->timeheap, ev);
956 event_queue_insert(struct event_base *base, struct event *ev, int queue)
958 if (ev->ev_flags & queue) {
964 ev, ev->ev_fd, queue);
967 if (~ev->ev_flags & EVLIST_INTERNAL)
970 ev->ev_flags |= queue;
973 TAILQ_INSERT_TAIL(&base->eventqueue, ev, ev_next);
977 TAILQ_INSERT_TAIL(base->activequeues[ev->ev_pri],
978 ev,ev_active_next);
981 min_heap_push(&base->timeheap, ev);