Lines Matching refs:evcb

436 event_callback_to_event(struct event_callback *evcb)
438 EVUTIL_ASSERT((evcb->evcb_flags & EVLIST_INIT));
439 return EVUTIL_UPCAST(evcb, struct event, ev_evcallback);
714 struct event_callback *evcb,
719 if (evcb->evcb_flags & EVLIST_INIT) {
720 struct event *ev = event_callback_to_event(evcb);
727 event_callback_cancel_nolock_(base, evcb, 1);
732 if (run_finalizers && (evcb->evcb_flags & EVLIST_FINALIZING)) {
733 switch (evcb->evcb_closure) {
736 struct event *ev = event_callback_to_event(evcb);
738 if (evcb->evcb_closure == EV_CLOSURE_EVENT_FINALIZE_FREE)
743 evcb->evcb_cb_union.evcb_cbfinalize(evcb, evcb->evcb_arg);
813 struct event_callback *evcb, *next;
814 for (evcb = TAILQ_FIRST(&base->activequeues[i]); evcb; ) {
815 next = TAILQ_NEXT(evcb, evcb_active_next);
816 n_deleted += event_base_cancel_single_callback_(base, evcb, run_finalizers);
817 evcb = next;
821 struct event_callback *evcb;
822 while ((evcb = TAILQ_FIRST(&base->active_later_queue))) {
823 n_deleted += event_base_cancel_single_callback_(base, evcb, run_finalizers);
1548 struct event_callback *evcb;
1553 for (evcb = TAILQ_FIRST(activeq); evcb; evcb = TAILQ_FIRST(activeq)) {
1555 if (evcb->evcb_flags & EVLIST_INIT) {
1556 ev = event_callback_to_event(evcb);
1559 event_queue_remove_active(base, evcb);
1570 event_queue_remove_active(base, evcb);
1573 evcb, evcb->evcb_closure, evcb->evcb_cb_union.evcb_callback));
1576 if (!(evcb->evcb_flags & EVLIST_INTERNAL))
1580 base->current_event = evcb;
1585 switch (evcb->evcb_closure) {
1603 void (*evcb_selfcb)(struct event_callback *, void *) = evcb->evcb_cb_union.evcb_selfcb;
1605 evcb_selfcb(evcb, evcb->evcb_arg);
1611 int evcb_closure = evcb->evcb_closure;
1615 EVUTIL_ASSERT((evcb->evcb_flags & EVLIST_FINALIZING));
1624 void (*evcb_cbfinalize)(struct event_callback *, void *) = evcb->evcb_cb_union.evcb_cbfinalize;
1626 EVUTIL_ASSERT((evcb->evcb_flags & EVLIST_FINALIZING));
1628 evcb_cbfinalize(evcb, evcb->evcb_arg);
2102 struct event_callback *evcb = base->current_event;
2103 if (evcb->evcb_flags & EVLIST_INIT)
2104 ev = event_callback_to_event(evcb);
2192 event_callback_finalize_nolock_(struct event_base *base, unsigned flags, struct event_callback *evcb, void (*cb)(struct event_callback *, void *))
2195 if (evcb->evcb_flags & EVLIST_INIT) {
2196 ev = event_callback_to_event(evcb);
2199 event_callback_cancel_nolock_(base, evcb, 0); /*XXX can this fail?*/
2202 evcb->evcb_closure = EV_CLOSURE_CB_FINALIZE;
2203 evcb->evcb_cb_union.evcb_cbfinalize = cb;
2204 event_callback_activate_nolock_(base, evcb); /* XXX can this really fail?*/
2205 evcb->evcb_flags |= EVLIST_FINALIZING;
2209 event_callback_finalize_(struct event_base *base, unsigned flags, struct event_callback *evcb, void (*cb)(struct event_callback *, void *))
2212 event_callback_finalize_nolock_(base, flags, evcb, cb);
2235 struct event_callback *evcb = evcbs[i];
2236 if (evcb == base->current_event) {
2237 event_callback_finalize_nolock_(base, 0, evcb, cb);
2240 event_callback_cancel_nolock_(base, evcb, 0);
2895 struct event_callback *evcb)
2899 r = event_callback_activate_nolock_(base, evcb);
2906 struct event_callback *evcb)
2910 if (evcb->evcb_flags & EVLIST_FINALIZING)
2913 switch (evcb->evcb_flags & (EVLIST_ACTIVE|EVLIST_ACTIVE_LATER)) {
2917 event_queue_remove_active_later(base, evcb);
2926 event_queue_insert_active(base, evcb);
2936 struct event_callback *evcb)
2938 if (evcb->evcb_flags & (EVLIST_ACTIVE|EVLIST_ACTIVE_LATER))
2941 event_queue_insert_active_later(base, evcb);
2956 struct event_callback *evcb)
2960 r = event_callback_cancel_nolock_(base, evcb, 0);
2967 struct event_callback *evcb, int even_if_finalizing)
2969 if ((evcb->evcb_flags & EVLIST_FINALIZING) && !even_if_finalizing)
2972 if (evcb->evcb_flags & EVLIST_INIT)
2973 return event_del_nolock_(event_callback_to_event(evcb),
2976 switch ((evcb->evcb_flags & (EVLIST_ACTIVE|EVLIST_ACTIVE_LATER))) {
2983 event_queue_remove_active(base, evcb);
2986 event_queue_remove_active_later(base, evcb);
3135 event_queue_remove_active(struct event_base *base, struct event_callback *evcb)
3138 if (EVUTIL_FAILURE_CHECK(!(evcb->evcb_flags & EVLIST_ACTIVE))) {
3140 evcb, EVLIST_ACTIVE);
3143 DECR_EVENT_COUNT(base, evcb->evcb_flags);
3144 evcb->evcb_flags &= ~EVLIST_ACTIVE;
3147 TAILQ_REMOVE(&base->activequeues[evcb->evcb_pri],
3148 evcb, evcb_active_next);
3151 event_queue_remove_active_later(struct event_base *base, struct event_callback *evcb)
3154 if (EVUTIL_FAILURE_CHECK(!(evcb->evcb_flags & EVLIST_ACTIVE_LATER))) {
3156 evcb, EVLIST_ACTIVE_LATER);
3159 DECR_EVENT_COUNT(base, evcb->evcb_flags);
3160 evcb->evcb_flags &= ~EVLIST_ACTIVE_LATER;
3163 TAILQ_REMOVE(&base->active_later_queue, evcb, evcb_active_next);
3276 event_queue_insert_active(struct event_base *base, struct event_callback *evcb)
3280 if (evcb->evcb_flags & EVLIST_ACTIVE) {
3285 INCR_EVENT_COUNT(base, evcb->evcb_flags);
3287 evcb->evcb_flags |= EVLIST_ACTIVE;
3291 EVUTIL_ASSERT(evcb->evcb_pri < base->nactivequeues);
3292 TAILQ_INSERT_TAIL(&base->activequeues[evcb->evcb_pri],
3293 evcb, evcb_active_next);
3297 event_queue_insert_active_later(struct event_base *base, struct event_callback *evcb)
3300 if (evcb->evcb_flags & (EVLIST_ACTIVE_LATER|EVLIST_ACTIVE)) {
3305 INCR_EVENT_COUNT(base, evcb->evcb_flags);
3306 evcb->evcb_flags |= EVLIST_ACTIVE_LATER;
3309 EVUTIL_ASSERT(evcb->evcb_pri < base->nactivequeues);
3310 TAILQ_INSERT_TAIL(&base->active_later_queue, evcb, evcb_active_next);
3340 struct event_callback *evcb;
3343 while ((evcb = TAILQ_FIRST(&base->active_later_queue))) {
3344 TAILQ_REMOVE(&base->active_later_queue, evcb, evcb_active_next);
3345 evcb->evcb_flags = (evcb->evcb_flags & ~EVLIST_ACTIVE_LATER) | EVLIST_ACTIVE;
3346 EVUTIL_ASSERT(evcb->evcb_pri < base->nactivequeues);
3347 TAILQ_INSERT_TAIL(&base->activequeues[evcb->evcb_pri], evcb, evcb_active_next);
3348 base->n_deferreds_queued += (evcb->evcb_closure == EV_CLOSURE_CB_SELF);
3621 struct event_callback *evcb;
3622 TAILQ_FOREACH(evcb, &base->activequeues[i], evcb_active_next) {
3623 if ((evcb->evcb_flags & (EVLIST_INIT|EVLIST_INSERTED|EVLIST_TIMEOUT)) != EVLIST_INIT) {
3629 ev = event_callback_to_event(evcb);
3873 struct event_callback *evcb;
3875 TAILQ_FOREACH(evcb, &base->activequeues[i], evcb_active_next) {
3876 EVUTIL_ASSERT((evcb->evcb_flags & (EVLIST_ACTIVE|EVLIST_ACTIVE_LATER)) == EVLIST_ACTIVE);
3877 EVUTIL_ASSERT(evcb->evcb_pri == i);
3883 struct event_callback *evcb;
3884 TAILQ_FOREACH(evcb, &base->active_later_queue, evcb_active_next) {
3885 EVUTIL_ASSERT((evcb->evcb_flags & (EVLIST_ACTIVE|EVLIST_ACTIVE_LATER)) == EVLIST_ACTIVE_LATER);