Lines Matching refs:evcb

496 event_callback_to_event(struct event_callback *evcb)
498 EVUTIL_ASSERT((evcb->evcb_flags & EVLIST_INIT));
499 return EVUTIL_UPCAST(evcb, struct event, ev_evcallback);
780 struct event_callback *evcb,
785 if (evcb->evcb_flags & EVLIST_INIT) {
786 struct event *ev = event_callback_to_event(evcb);
793 event_callback_cancel_nolock_(base, evcb, 1);
798 if (run_finalizers && (evcb->evcb_flags & EVLIST_FINALIZING)) {
799 switch (evcb->evcb_closure) {
802 struct event *ev = event_callback_to_event(evcb);
804 if (evcb->evcb_closure == EV_CLOSURE_EVENT_FINALIZE_FREE)
809 evcb->evcb_cb_union.evcb_cbfinalize(evcb, evcb->evcb_arg);
823 struct event_callback *evcb, *next;
824 for (evcb = TAILQ_FIRST(&base->activequeues[i]); evcb; ) {
825 next = TAILQ_NEXT(evcb, evcb_active_next);
826 deleted += event_base_cancel_single_callback_(base, evcb, run_finalizers);
827 evcb = next;
832 struct event_callback *evcb;
833 while ((evcb = TAILQ_FIRST(&base->active_later_queue))) {
834 deleted += event_base_cancel_single_callback_(base, evcb, run_finalizers);
1643 struct event_callback *evcb;
1648 for (evcb = TAILQ_FIRST(activeq); evcb; evcb = TAILQ_FIRST(activeq)) {
1650 if (evcb->evcb_flags & EVLIST_INIT) {
1651 ev = event_callback_to_event(evcb);
1654 event_queue_remove_active(base, evcb);
1665 event_queue_remove_active(base, evcb);
1668 evcb, evcb->evcb_closure, evcb->evcb_cb_union.evcb_callback));
1671 if (!(evcb->evcb_flags & EVLIST_INTERNAL))
1675 base->current_event = evcb;
1680 switch (evcb->evcb_closure) {
1700 void (*evcb_selfcb)(struct event_callback *, void *) = evcb->evcb_cb_union.evcb_selfcb;
1702 evcb_selfcb(evcb, evcb->evcb_arg);
1708 int evcb_closure = evcb->evcb_closure;
1712 EVUTIL_ASSERT((evcb->evcb_flags & EVLIST_FINALIZING));
1721 void (*evcb_cbfinalize)(struct event_callback *, void *) = evcb->evcb_cb_union.evcb_cbfinalize;
1723 EVUTIL_ASSERT((evcb->evcb_flags & EVLIST_FINALIZING));
1725 evcb_cbfinalize(evcb, evcb->evcb_arg);
2204 struct event_callback *evcb = base->current_event;
2205 if (evcb->evcb_flags & EVLIST_INIT)
2206 ev = event_callback_to_event(evcb);
2294 event_callback_finalize_nolock_(struct event_base *base, unsigned flags, struct event_callback *evcb, void (*cb)(struct event_callback *, void *))
2297 if (evcb->evcb_flags & EVLIST_INIT) {
2298 ev = event_callback_to_event(evcb);
2301 event_callback_cancel_nolock_(base, evcb, 0); /*XXX can this fail?*/
2304 evcb->evcb_closure = EV_CLOSURE_CB_FINALIZE;
2305 evcb->evcb_cb_union.evcb_cbfinalize = cb;
2306 event_callback_activate_nolock_(base, evcb); /* XXX can this really fail?*/
2307 evcb->evcb_flags |= EVLIST_FINALIZING;
2311 event_callback_finalize_(struct event_base *base, unsigned flags, struct event_callback *evcb, void (*cb)(struct event_callback *, void *))
2314 event_callback_finalize_nolock_(base, flags, evcb, cb);
2337 struct event_callback *evcb = evcbs[i];
2338 if (evcb == base->current_event) {
2339 event_callback_finalize_nolock_(base, 0, evcb, cb);
2342 event_callback_cancel_nolock_(base, evcb, 0);
3001 struct event_callback *evcb)
3005 r = event_callback_activate_nolock_(base, evcb);
3012 struct event_callback *evcb)
3016 if (evcb->evcb_flags & EVLIST_FINALIZING)
3019 switch (evcb->evcb_flags & (EVLIST_ACTIVE|EVLIST_ACTIVE_LATER)) {
3024 event_queue_remove_active_later(base, evcb);
3033 event_queue_insert_active(base, evcb);
3043 struct event_callback *evcb)
3045 if (evcb->evcb_flags & (EVLIST_ACTIVE|EVLIST_ACTIVE_LATER))
3048 event_queue_insert_active_later(base, evcb);
3064 struct event_callback *evcb)
3068 r = event_callback_cancel_nolock_(base, evcb, 0);
3075 struct event_callback *evcb, int even_if_finalizing)
3077 if ((evcb->evcb_flags & EVLIST_FINALIZING) && !even_if_finalizing)
3080 if (evcb->evcb_flags & EVLIST_INIT)
3081 return event_del_nolock_(event_callback_to_event(evcb),
3084 switch ((evcb->evcb_flags & (EVLIST_ACTIVE|EVLIST_ACTIVE_LATER))) {
3091 event_queue_remove_active(base, evcb);
3094 event_queue_remove_active_later(base, evcb);
3241 event_queue_remove_active(struct event_base *base, struct event_callback *evcb)
3244 if (EVUTIL_FAILURE_CHECK(!(evcb->evcb_flags & EVLIST_ACTIVE))) {
3246 evcb, EVLIST_ACTIVE);
3249 DECR_EVENT_COUNT(base, evcb->evcb_flags);
3250 evcb->evcb_flags &= ~EVLIST_ACTIVE;
3253 TAILQ_REMOVE(&base->activequeues[evcb->evcb_pri],
3254 evcb, evcb_active_next);
3257 event_queue_remove_active_later(struct event_base *base, struct event_callback *evcb)
3260 if (EVUTIL_FAILURE_CHECK(!(evcb->evcb_flags & EVLIST_ACTIVE_LATER))) {
3262 evcb, EVLIST_ACTIVE_LATER);
3265 DECR_EVENT_COUNT(base, evcb->evcb_flags);
3266 evcb->evcb_flags &= ~EVLIST_ACTIVE_LATER;
3269 TAILQ_REMOVE(&base->active_later_queue, evcb, evcb_active_next);
3382 event_queue_insert_active(struct event_base *base, struct event_callback *evcb)
3386 if (evcb->evcb_flags & EVLIST_ACTIVE) {
3391 INCR_EVENT_COUNT(base, evcb->evcb_flags);
3393 evcb->evcb_flags |= EVLIST_ACTIVE;
3397 EVUTIL_ASSERT(evcb->evcb_pri < base->nactivequeues);
3398 TAILQ_INSERT_TAIL(&base->activequeues[evcb->evcb_pri],
3399 evcb, evcb_active_next);
3403 event_queue_insert_active_later(struct event_base *base, struct event_callback *evcb)
3406 if (evcb->evcb_flags & (EVLIST_ACTIVE_LATER|EVLIST_ACTIVE)) {
3411 INCR_EVENT_COUNT(base, evcb->evcb_flags);
3412 evcb->evcb_flags |= EVLIST_ACTIVE_LATER;
3415 EVUTIL_ASSERT(evcb->evcb_pri < base->nactivequeues);
3416 TAILQ_INSERT_TAIL(&base->active_later_queue, evcb, evcb_active_next);
3446 struct event_callback *evcb;
3449 while ((evcb = TAILQ_FIRST(&base->active_later_queue))) {
3450 TAILQ_REMOVE(&base->active_later_queue, evcb, evcb_active_next);
3451 evcb->evcb_flags = (evcb->evcb_flags & ~EVLIST_ACTIVE_LATER) | EVLIST_ACTIVE;
3452 EVUTIL_ASSERT(evcb->evcb_pri < base->nactivequeues);
3453 TAILQ_INSERT_TAIL(&base->activequeues[evcb->evcb_pri], evcb, evcb_active_next);
3454 base->n_deferreds_queued += (evcb->evcb_closure == EV_CLOSURE_CB_SELF);
3727 struct event_callback *evcb;
3728 TAILQ_FOREACH(evcb, &base->activequeues[i], evcb_active_next) {
3729 if ((evcb->evcb_flags & (EVLIST_INIT|EVLIST_INSERTED|EVLIST_TIMEOUT)) != EVLIST_INIT) {
3735 ev = event_callback_to_event(evcb);
4008 struct event_callback *evcb;
4010 TAILQ_FOREACH(evcb, &base->activequeues[i], evcb_active_next) {
4011 EVUTIL_ASSERT((evcb->evcb_flags & (EVLIST_ACTIVE|EVLIST_ACTIVE_LATER)) == EVLIST_ACTIVE);
4012 EVUTIL_ASSERT(evcb->evcb_pri == i);
4018 struct event_callback *evcb;
4019 TAILQ_FOREACH(evcb, &base->active_later_queue, evcb_active_next) {
4020 EVUTIL_ASSERT((evcb->evcb_flags & (EVLIST_ACTIVE|EVLIST_ACTIVE_LATER)) == EVLIST_ACTIVE_LATER);