Lines Matching refs:ev
150 struct event *ev; in event_base_free() local
160 for (ev = TAILQ_FIRST(&base->eventqueue); ev; ) { in event_base_free()
161 struct event *next = TAILQ_NEXT(ev, ev_next); in event_base_free()
162 if (!(ev->ev_flags & EVLIST_INTERNAL)) { in event_base_free()
163 event_del(ev); in event_base_free()
166 ev = next; in event_base_free()
168 while ((ev = min_heap_top(&base->timeheap)) != NULL) { in event_base_free()
169 event_del(ev); in event_base_free()
174 for (ev = TAILQ_FIRST(base->activequeues[i]); ev; ) { in event_base_free()
175 struct event *next = TAILQ_NEXT(ev, ev_active_next); in event_base_free()
176 if (!(ev->ev_flags & EVLIST_INTERNAL)) { in event_base_free()
177 event_del(ev); in event_base_free()
180 ev = next; in event_base_free()
213 struct event *ev; in event_reinit() local
243 TAILQ_FOREACH(ev, &base->eventqueue, ev_next) { in event_reinit()
244 if (evsel->add(evbase, ev) == -1) in event_reinit()
307 struct event *ev; in event_process_active() local
321 for (ev = TAILQ_FIRST(activeq); ev; ev = TAILQ_FIRST(activeq)) { in event_process_active()
322 if (ev->ev_events & EV_PERSIST) in event_process_active()
323 event_queue_remove(base, ev, EVLIST_ACTIVE); in event_process_active()
325 event_del(ev); in event_process_active()
328 ncalls = ev->ev_ncalls; in event_process_active()
329 ev->ev_pncalls = &ncalls; in event_process_active()
332 ev->ev_ncalls = ncalls; in event_process_active()
333 (*ev->ev_callback)((int)ev->ev_fd, ev->ev_res, ev->ev_arg); in event_process_active()
500 struct event ev; member
550 evtimer_set(&eonce->ev, event_once_cb, eonce); in event_base_once()
554 event_set(&eonce->ev, fd, events, event_once_cb, eonce); in event_base_once()
561 res = event_base_set(base, &eonce->ev); in event_base_once()
563 res = event_add(&eonce->ev, tv); in event_base_once()
573 event_set(struct event *ev, int fd, short events, in event_set() argument
577 ev->ev_base = current_base; in event_set()
579 ev->ev_callback = callback; in event_set()
580 ev->ev_arg = arg; in event_set()
581 ev->ev_fd = fd; in event_set()
582 ev->ev_events = events; in event_set()
583 ev->ev_res = 0; in event_set()
584 ev->ev_flags = EVLIST_INIT; in event_set()
585 ev->ev_ncalls = 0; in event_set()
586 ev->ev_pncalls = NULL; in event_set()
588 min_heap_elem_init(ev); in event_set()
592 ev->ev_pri = current_base->nactivequeues/2; in event_set()
596 event_base_set(struct event_base *base, struct event *ev) in event_base_set() argument
599 if (ev->ev_flags != EVLIST_INIT) in event_base_set()
602 ev->ev_base = base; in event_base_set()
603 ev->ev_pri = base->nactivequeues/2; in event_base_set()
614 event_priority_set(struct event *ev, int pri) in event_priority_set() argument
616 if (ev->ev_flags & EVLIST_ACTIVE) in event_priority_set()
618 if (pri < 0 || pri >= ev->ev_base->nactivequeues) in event_priority_set()
621 ev->ev_pri = pri; in event_priority_set()
631 event_pending(struct event *ev, short event, struct timeval *tv) in event_pending() argument
636 if (ev->ev_flags & EVLIST_INSERTED) in event_pending()
637 flags |= (ev->ev_events & (EV_READ|EV_WRITE|EV_SIGNAL)); in event_pending()
638 if (ev->ev_flags & EVLIST_ACTIVE) in event_pending()
639 flags |= ev->ev_res; in event_pending()
640 if (ev->ev_flags & EVLIST_TIMEOUT) in event_pending()
647 gettime(ev->ev_base, &now); in event_pending()
648 timersub(&ev->ev_timeout, &now, &res); in event_pending()
658 event_add(struct event *ev, const struct timeval *tv) in event_add() argument
660 struct event_base *base = ev->ev_base; in event_add()
667 ev, in event_add()
668 ev->ev_events & EV_READ ? "EV_READ " : " ", in event_add()
669 ev->ev_events & EV_WRITE ? "EV_WRITE " : " ", in event_add()
671 ev->ev_callback)); in event_add()
673 assert(!(ev->ev_flags & ~EVLIST_ALL)); in event_add()
679 if (tv != NULL && !(ev->ev_flags & EVLIST_TIMEOUT)) { in event_add()
685 if ((ev->ev_events & (EV_READ|EV_WRITE|EV_SIGNAL)) && in event_add()
686 !(ev->ev_flags & (EVLIST_INSERTED|EVLIST_ACTIVE))) { in event_add()
687 res = evsel->add(evbase, ev); in event_add()
689 event_queue_insert(base, ev, EVLIST_INSERTED); in event_add()
703 if (ev->ev_flags & EVLIST_TIMEOUT) in event_add()
704 event_queue_remove(base, ev, EVLIST_TIMEOUT); in event_add()
709 if ((ev->ev_flags & EVLIST_ACTIVE) && in event_add()
710 (ev->ev_res & EV_TIMEOUT)) { in event_add()
714 if (ev->ev_ncalls && ev->ev_pncalls) { in event_add()
716 *ev->ev_pncalls = 0; in event_add()
719 event_queue_remove(base, ev, EVLIST_ACTIVE); in event_add()
723 timeradd(&now, tv, &ev->ev_timeout); in event_add()
727 (long long)tv->tv_sec, ev->ev_callback)); in event_add()
729 event_queue_insert(base, ev, EVLIST_TIMEOUT); in event_add()
736 event_del(struct event *ev) in event_del() argument
743 ev, ev->ev_callback)); in event_del()
746 if (ev->ev_base == NULL) in event_del()
749 base = ev->ev_base; in event_del()
753 assert(!(ev->ev_flags & ~EVLIST_ALL)); in event_del()
756 if (ev->ev_ncalls && ev->ev_pncalls) { in event_del()
758 *ev->ev_pncalls = 0; in event_del()
761 if (ev->ev_flags & EVLIST_TIMEOUT) in event_del()
762 event_queue_remove(base, ev, EVLIST_TIMEOUT); in event_del()
764 if (ev->ev_flags & EVLIST_ACTIVE) in event_del()
765 event_queue_remove(base, ev, EVLIST_ACTIVE); in event_del()
767 if (ev->ev_flags & EVLIST_INSERTED) { in event_del()
768 event_queue_remove(base, ev, EVLIST_INSERTED); in event_del()
769 return (evsel->del(evbase, ev)); in event_del()
776 event_active(struct event *ev, int res, short ncalls) in event_active() argument
779 if (ev->ev_flags & EVLIST_ACTIVE) { in event_active()
780 ev->ev_res |= res; in event_active()
784 ev->ev_res = res; in event_active()
785 ev->ev_ncalls = ncalls; in event_active()
786 ev->ev_pncalls = NULL; in event_active()
787 event_queue_insert(ev->ev_base, ev, EVLIST_ACTIVE); in event_active()
794 struct event *ev; in timeout_next() local
797 if ((ev = min_heap_top(&base->timeheap)) == NULL) { in timeout_next()
805 if (timercmp(&ev->ev_timeout, &now, <=)) { in timeout_next()
810 timersub(&ev->ev_timeout, &now, tv); in timeout_next()
823 struct event *ev; in timeout_process() local
830 while ((ev = min_heap_top(&base->timeheap))) { in timeout_process()
831 if (timercmp(&ev->ev_timeout, &now, >)) in timeout_process()
835 event_del(ev); in timeout_process()
838 ev->ev_callback)); in timeout_process()
839 event_active(ev, EV_TIMEOUT, 1); in timeout_process()
844 event_queue_remove(struct event_base *base, struct event *ev, int queue) in event_queue_remove() argument
846 if (!(ev->ev_flags & queue)) in event_queue_remove()
848 ev, ev->ev_fd, queue); in event_queue_remove()
850 if (~ev->ev_flags & EVLIST_INTERNAL) in event_queue_remove()
853 ev->ev_flags &= ~queue; in event_queue_remove()
856 TAILQ_REMOVE(&base->eventqueue, ev, ev_next); in event_queue_remove()
860 TAILQ_REMOVE(base->activequeues[ev->ev_pri], in event_queue_remove()
861 ev, ev_active_next); in event_queue_remove()
864 min_heap_erase(&base->timeheap, ev); in event_queue_remove()
872 event_queue_insert(struct event_base *base, struct event *ev, int queue) in event_queue_insert() argument
874 if (ev->ev_flags & queue) { in event_queue_insert()
880 ev, ev->ev_fd, queue); in event_queue_insert()
883 if (~ev->ev_flags & EVLIST_INTERNAL) in event_queue_insert()
886 ev->ev_flags |= queue; in event_queue_insert()
889 TAILQ_INSERT_TAIL(&base->eventqueue, ev, ev_next); in event_queue_insert()
893 TAILQ_INSERT_TAIL(base->activequeues[ev->ev_pri], in event_queue_insert()
894 ev,ev_active_next); in event_queue_insert()
897 min_heap_push(&base->timeheap, ev); in event_queue_insert()
929 struct event ev; member
937 short ev __attribute__((__unused__)), void *arg) in event_asr_dispatch() argument
943 event_del(&eva->ev); in event_asr_dispatch()
949 event_set(&eva->ev, ar.ar_fd, in event_asr_dispatch()
954 event_add(&eva->ev, &tv); in event_asr_dispatch()
973 evtimer_set(&eva->ev, event_asr_dispatch, eva); in event_asr_run()
974 evtimer_add(&eva->ev, &tv); in event_asr_run()
982 event_del(&eva->ev); in event_asr_abort()