Lines Matching full:ev
289 struct event *ev; in event_process_active() local
306 for (ev = TAILQ_FIRST(activeq); ev; ev = TAILQ_FIRST(activeq)) { in event_process_active()
307 event_queue_remove(base, ev, EVLIST_ACTIVE); in event_process_active()
310 ncalls = ev->ev_ncalls; in event_process_active()
311 ev->ev_pncalls = &ncalls; in event_process_active()
314 ev->ev_ncalls = ncalls; in event_process_active()
315 (*ev->ev_callback)((int)ev->ev_fd, ev->ev_res, ev->ev_arg); in event_process_active()
445 struct event ev; member
488 evtimer_set(&eonce->ev, event_once_cb, eonce); in event_once()
492 event_set(&eonce->ev, fd, events, event_once_cb, eonce); in event_once()
499 res = event_add(&eonce->ev, tv); in event_once()
509 event_set(struct event *ev, int fd, short events, in event_set() argument
513 ev->ev_base = current_base; in event_set()
515 ev->ev_callback = callback; in event_set()
516 ev->ev_arg = arg; in event_set()
517 ev->ev_fd = fd; in event_set()
518 ev->ev_events = events; in event_set()
519 ev->ev_flags = EVLIST_INIT; in event_set()
520 ev->ev_ncalls = 0; in event_set()
521 ev->ev_pncalls = NULL; in event_set()
524 ev->ev_pri = current_base->nactivequeues/2; in event_set()
528 event_base_set(struct event_base *base, struct event *ev) in event_base_set() argument
531 if (ev->ev_flags != EVLIST_INIT) in event_base_set()
534 ev->ev_base = base; in event_base_set()
535 ev->ev_pri = base->nactivequeues/2; in event_base_set()
546 event_priority_set(struct event *ev, int pri) in event_priority_set() argument
548 if (ev->ev_flags & EVLIST_ACTIVE) in event_priority_set()
550 if (pri < 0 || pri >= ev->ev_base->nactivequeues) in event_priority_set()
553 ev->ev_pri = pri; in event_priority_set()
563 event_pending(struct event *ev, short event, struct timeval *tv) in event_pending() argument
568 if (ev->ev_flags & EVLIST_INSERTED) in event_pending()
569 flags |= (ev->ev_events & (EV_READ|EV_WRITE)); in event_pending()
570 if (ev->ev_flags & EVLIST_ACTIVE) in event_pending()
571 flags |= ev->ev_res; in event_pending()
572 if (ev->ev_flags & EVLIST_TIMEOUT) in event_pending()
574 if (ev->ev_flags & EVLIST_SIGNAL) in event_pending()
582 timersub(&ev->ev_timeout, &now, &res); in event_pending()
592 event_add(struct event *ev, struct timeval *tv) in event_add() argument
594 struct event_base *base = ev->ev_base; in event_add()
600 ev, in event_add()
601 ev->ev_events & EV_READ ? "EV_READ " : " ", in event_add()
602 ev->ev_events & EV_WRITE ? "EV_WRITE " : " ", in event_add()
604 ev->ev_callback)); in event_add()
606 assert(!(ev->ev_flags & ~EVLIST_ALL)); in event_add()
611 if (ev->ev_flags & EVLIST_TIMEOUT) in event_add()
612 event_queue_remove(base, ev, EVLIST_TIMEOUT); in event_add()
617 if ((ev->ev_flags & EVLIST_ACTIVE) && in event_add()
618 (ev->ev_res & EV_TIMEOUT)) { in event_add()
622 if (ev->ev_ncalls && ev->ev_pncalls) { in event_add()
624 *ev->ev_pncalls = 0; in event_add()
627 event_queue_remove(base, ev, EVLIST_ACTIVE); in event_add()
631 timeradd(&now, tv, &ev->ev_timeout); in event_add()
635 tv->tv_sec, ev->ev_callback)); in event_add()
637 event_queue_insert(base, ev, EVLIST_TIMEOUT); in event_add()
640 if ((ev->ev_events & (EV_READ|EV_WRITE)) && in event_add()
641 !(ev->ev_flags & (EVLIST_INSERTED|EVLIST_ACTIVE))) { in event_add()
642 event_queue_insert(base, ev, EVLIST_INSERTED); in event_add()
644 return (evsel->add(evbase, ev)); in event_add()
645 } else if ((ev->ev_events & EV_SIGNAL) && in event_add()
646 !(ev->ev_flags & EVLIST_SIGNAL)) { in event_add()
647 event_queue_insert(base, ev, EVLIST_SIGNAL); in event_add()
649 return (evsel->add(evbase, ev)); in event_add()
656 event_del(struct event *ev) in event_del() argument
663 ev, ev->ev_callback)); in event_del()
666 if (ev->ev_base == NULL) in event_del()
669 base = ev->ev_base; in event_del()
673 assert(!(ev->ev_flags & ~EVLIST_ALL)); in event_del()
676 if (ev->ev_ncalls && ev->ev_pncalls) { in event_del()
678 *ev->ev_pncalls = 0; in event_del()
681 if (ev->ev_flags & EVLIST_TIMEOUT) in event_del()
682 event_queue_remove(base, ev, EVLIST_TIMEOUT); in event_del()
684 if (ev->ev_flags & EVLIST_ACTIVE) in event_del()
685 event_queue_remove(base, ev, EVLIST_ACTIVE); in event_del()
687 if (ev->ev_flags & EVLIST_INSERTED) { in event_del()
688 event_queue_remove(base, ev, EVLIST_INSERTED); in event_del()
689 return (evsel->del(evbase, ev)); in event_del()
690 } else if (ev->ev_flags & EVLIST_SIGNAL) { in event_del()
691 event_queue_remove(base, ev, EVLIST_SIGNAL); in event_del()
692 return (evsel->del(evbase, ev)); in event_del()
699 event_active(struct event *ev, int res, short ncalls) in event_active() argument
702 if (ev->ev_flags & EVLIST_ACTIVE) { in event_active()
703 ev->ev_res |= res; in event_active()
707 ev->ev_res = res; in event_active()
708 ev->ev_ncalls = ncalls; in event_active()
709 ev->ev_pncalls = NULL; in event_active()
710 event_queue_insert(ev->ev_base, ev, EVLIST_ACTIVE); in event_active()
719 struct event *ev; in timeout_next() local
721 if ((ev = RB_MIN(event_tree, &base->timetree)) == NULL) { in timeout_next()
729 if (timercmp(&ev->ev_timeout, &now, <=)) { in timeout_next()
734 timersub(&ev->ev_timeout, &now, tv); in timeout_next()
746 struct event *ev; in timeout_correct() local
752 RB_FOREACH(ev, event_tree, &base->timetree) in timeout_correct()
753 timersub(&ev->ev_timeout, off, &ev->ev_timeout); in timeout_correct()
760 struct event *ev, *next; in timeout_process() local
764 for (ev = RB_MIN(event_tree, &base->timetree); ev; ev = next) { in timeout_process()
765 if (timercmp(&ev->ev_timeout, &now, >)) in timeout_process()
767 next = RB_NEXT(event_tree, &base->timetree, ev); in timeout_process()
769 event_queue_remove(base, ev, EVLIST_TIMEOUT); in timeout_process()
772 event_del(ev); in timeout_process()
775 ev->ev_callback)); in timeout_process()
776 event_active(ev, EV_TIMEOUT, 1); in timeout_process()
781 event_queue_remove(struct event_base *base, struct event *ev, int queue) in event_queue_remove() argument
785 if (!(ev->ev_flags & queue)) in event_queue_remove()
787 ev, ev->ev_fd, queue); in event_queue_remove()
789 if (ev->ev_flags & EVLIST_INTERNAL) in event_queue_remove()
795 ev->ev_flags &= ~queue; in event_queue_remove()
800 TAILQ_REMOVE(base->activequeues[ev->ev_pri], in event_queue_remove()
801 ev, ev_active_next); in event_queue_remove()
804 TAILQ_REMOVE(&signalqueue, ev, ev_signal_next); in event_queue_remove()
807 RB_REMOVE(event_tree, &base->timetree, ev); in event_queue_remove()
810 TAILQ_REMOVE(&base->eventqueue, ev, ev_next); in event_queue_remove()
818 event_queue_insert(struct event_base *base, struct event *ev, int queue) in event_queue_insert() argument
822 if (ev->ev_flags & queue) { in event_queue_insert()
828 ev, ev->ev_fd, queue); in event_queue_insert()
831 if (ev->ev_flags & EVLIST_INTERNAL) in event_queue_insert()
837 ev->ev_flags |= queue; in event_queue_insert()
842 TAILQ_INSERT_TAIL(base->activequeues[ev->ev_pri], in event_queue_insert()
843 ev,ev_active_next); in event_queue_insert()
846 TAILQ_INSERT_TAIL(&signalqueue, ev, ev_signal_next); in event_queue_insert()
849 struct event *tmp = RB_INSERT(event_tree, &base->timetree, ev); in event_queue_insert()
854 TAILQ_INSERT_TAIL(&base->eventqueue, ev, ev_next); in event_queue_insert()