Lines Matching defs:evcb

438 event_callback_to_event(struct event_callback *evcb)
440 EVUTIL_ASSERT((evcb->evcb_flags & EVLIST_INIT));
441 return EVUTIL_UPCAST(evcb, struct event, ev_evcallback);
716 struct event_callback *evcb,
721 if (evcb->evcb_flags & EVLIST_INIT) {
722 struct event *ev = event_callback_to_event(evcb);
729 event_callback_cancel_nolock_(base, evcb, 1);
734 if (run_finalizers && (evcb->evcb_flags & EVLIST_FINALIZING)) {
735 switch (evcb->evcb_closure) {
738 struct event *ev = event_callback_to_event(evcb);
740 if (evcb->evcb_closure == EV_CLOSURE_EVENT_FINALIZE_FREE)
745 evcb->evcb_cb_union.evcb_cbfinalize(evcb, evcb->evcb_arg);
815 struct event_callback *evcb, *next;
816 for (evcb = TAILQ_FIRST(&base->activequeues[i]); evcb; ) {
817 next = TAILQ_NEXT(evcb, evcb_active_next);
818 n_deleted += event_base_cancel_single_callback_(base, evcb, run_finalizers);
819 evcb = next;
823 struct event_callback *evcb;
824 while ((evcb = TAILQ_FIRST(&base->active_later_queue))) {
825 n_deleted += event_base_cancel_single_callback_(base, evcb, run_finalizers);
1550 struct event_callback *evcb;
1555 for (evcb = TAILQ_FIRST(activeq); evcb; evcb = TAILQ_FIRST(activeq)) {
1557 if (evcb->evcb_flags & EVLIST_INIT) {
1558 ev = event_callback_to_event(evcb);
1561 event_queue_remove_active(base, evcb);
1572 event_queue_remove_active(base, evcb);
1575 evcb, evcb->evcb_closure, evcb->evcb_cb_union.evcb_callback));
1578 if (!(evcb->evcb_flags & EVLIST_INTERNAL))
1582 base->current_event = evcb;
1587 switch (evcb->evcb_closure) {
1605 void (*evcb_selfcb)(struct event_callback *, void *) = evcb->evcb_cb_union.evcb_selfcb;
1607 evcb_selfcb(evcb, evcb->evcb_arg);
1613 int evcb_closure = evcb->evcb_closure;
1617 EVUTIL_ASSERT((evcb->evcb_flags & EVLIST_FINALIZING));
1626 void (*evcb_cbfinalize)(struct event_callback *, void *) = evcb->evcb_cb_union.evcb_cbfinalize;
1628 EVUTIL_ASSERT((evcb->evcb_flags & EVLIST_FINALIZING));
1630 evcb_cbfinalize(evcb, evcb->evcb_arg);
2104 struct event_callback *evcb = base->current_event;
2105 if (evcb->evcb_flags & EVLIST_INIT)
2106 ev = event_callback_to_event(evcb);
2194 event_callback_finalize_nolock_(struct event_base *base, unsigned flags, struct event_callback *evcb, void (*cb)(struct event_callback *, void *))
2197 if (evcb->evcb_flags & EVLIST_INIT) {
2198 ev = event_callback_to_event(evcb);
2201 event_callback_cancel_nolock_(base, evcb, 0); /*XXX can this fail?*/
2204 evcb->evcb_closure = EV_CLOSURE_CB_FINALIZE;
2205 evcb->evcb_cb_union.evcb_cbfinalize = cb;
2206 event_callback_activate_nolock_(base, evcb); /* XXX can this really fail?*/
2207 evcb->evcb_flags |= EVLIST_FINALIZING;
2211 event_callback_finalize_(struct event_base *base, unsigned flags, struct event_callback *evcb, void (*cb)(struct event_callback *, void *))
2214 event_callback_finalize_nolock_(base, flags, evcb, cb);
2237 struct event_callback *evcb = evcbs[i];
2238 if (evcb == base->current_event) {
2239 event_callback_finalize_nolock_(base, 0, evcb, cb);
2242 event_callback_cancel_nolock_(base, evcb, 0);
2897 struct event_callback *evcb)
2901 r = event_callback_activate_nolock_(base, evcb);
2908 struct event_callback *evcb)
2912 if (evcb->evcb_flags & EVLIST_FINALIZING)
2915 switch (evcb->evcb_flags & (EVLIST_ACTIVE|EVLIST_ACTIVE_LATER)) {
2919 event_queue_remove_active_later(base, evcb);
2928 event_queue_insert_active(base, evcb);
2938 struct event_callback *evcb)
2940 if (evcb->evcb_flags & (EVLIST_ACTIVE|EVLIST_ACTIVE_LATER))
2943 event_queue_insert_active_later(base, evcb);
2958 struct event_callback *evcb)
2962 r = event_callback_cancel_nolock_(base, evcb, 0);
2969 struct event_callback *evcb, int even_if_finalizing)
2971 if ((evcb->evcb_flags & EVLIST_FINALIZING) && !even_if_finalizing)
2974 if (evcb->evcb_flags & EVLIST_INIT)
2975 return event_del_nolock_(event_callback_to_event(evcb),
2978 switch ((evcb->evcb_flags & (EVLIST_ACTIVE|EVLIST_ACTIVE_LATER))) {
2985 event_queue_remove_active(base, evcb);
2988 event_queue_remove_active_later(base, evcb);
3137 event_queue_remove_active(struct event_base *base, struct event_callback *evcb)
3140 if (EVUTIL_FAILURE_CHECK(!(evcb->evcb_flags & EVLIST_ACTIVE))) {
3142 evcb, EVLIST_ACTIVE);
3145 DECR_EVENT_COUNT(base, evcb->evcb_flags);
3146 evcb->evcb_flags &= ~EVLIST_ACTIVE;
3149 TAILQ_REMOVE(&base->activequeues[evcb->evcb_pri],
3150 evcb, evcb_active_next);
3153 event_queue_remove_active_later(struct event_base *base, struct event_callback *evcb)
3156 if (EVUTIL_FAILURE_CHECK(!(evcb->evcb_flags & EVLIST_ACTIVE_LATER))) {
3158 evcb, EVLIST_ACTIVE_LATER);
3161 DECR_EVENT_COUNT(base, evcb->evcb_flags);
3162 evcb->evcb_flags &= ~EVLIST_ACTIVE_LATER;
3165 TAILQ_REMOVE(&base->active_later_queue, evcb, evcb_active_next);
3278 event_queue_insert_active(struct event_base *base, struct event_callback *evcb)
3282 if (evcb->evcb_flags & EVLIST_ACTIVE) {
3287 INCR_EVENT_COUNT(base, evcb->evcb_flags);
3289 evcb->evcb_flags |= EVLIST_ACTIVE;
3293 EVUTIL_ASSERT(evcb->evcb_pri < base->nactivequeues);
3294 TAILQ_INSERT_TAIL(&base->activequeues[evcb->evcb_pri],
3295 evcb, evcb_active_next);
3299 event_queue_insert_active_later(struct event_base *base, struct event_callback *evcb)
3302 if (evcb->evcb_flags & (EVLIST_ACTIVE_LATER|EVLIST_ACTIVE)) {
3307 INCR_EVENT_COUNT(base, evcb->evcb_flags);
3308 evcb->evcb_flags |= EVLIST_ACTIVE_LATER;
3311 EVUTIL_ASSERT(evcb->evcb_pri < base->nactivequeues);
3312 TAILQ_INSERT_TAIL(&base->active_later_queue, evcb, evcb_active_next);
3342 struct event_callback *evcb;
3345 while ((evcb = TAILQ_FIRST(&base->active_later_queue))) {
3346 TAILQ_REMOVE(&base->active_later_queue, evcb, evcb_active_next);
3347 evcb->evcb_flags = (evcb->evcb_flags & ~EVLIST_ACTIVE_LATER) | EVLIST_ACTIVE;
3348 EVUTIL_ASSERT(evcb->evcb_pri < base->nactivequeues);
3349 TAILQ_INSERT_TAIL(&base->activequeues[evcb->evcb_pri], evcb, evcb_active_next);
3350 base->n_deferreds_queued += (evcb->evcb_closure == EV_CLOSURE_CB_SELF);
3623 struct event_callback *evcb;
3624 TAILQ_FOREACH(evcb, &base->activequeues[i], evcb_active_next) {
3625 if ((evcb->evcb_flags & (EVLIST_INIT|EVLIST_INSERTED|EVLIST_TIMEOUT)) != EVLIST_INIT) {
3631 ev = event_callback_to_event(evcb);
3875 struct event_callback *evcb;
3877 TAILQ_FOREACH(evcb, &base->activequeues[i], evcb_active_next) {
3878 EVUTIL_ASSERT((evcb->evcb_flags & (EVLIST_ACTIVE|EVLIST_ACTIVE_LATER)) == EVLIST_ACTIVE);
3879 EVUTIL_ASSERT(evcb->evcb_pri == i);
3885 struct event_callback *evcb;
3886 TAILQ_FOREACH(evcb, &base->active_later_queue, evcb_active_next) {
3887 EVUTIL_ASSERT((evcb->evcb_flags & (EVLIST_ACTIVE|EVLIST_ACTIVE_LATER)) == EVLIST_ACTIVE_LATER);