Home | History | Annotate | Download | only in libevent

Lines Matching full:evcb

452 event_callback_to_event(struct event_callback *evcb)
454 EVUTIL_ASSERT((evcb->evcb_flags & EVLIST_INIT));
455 return EVUTIL_UPCAST(evcb, struct event, ev_evcallback);
734 struct event_callback *evcb,
739 if (evcb->evcb_flags & EVLIST_INIT) {
740 struct event *ev = event_callback_to_event(evcb);
747 event_callback_cancel_nolock_(base, evcb, 1);
752 if (run_finalizers && (evcb->evcb_flags & EVLIST_FINALIZING)) {
753 switch (evcb->evcb_closure) {
756 struct event *ev = event_callback_to_event(evcb);
758 if (evcb->evcb_closure == EV_CLOSURE_EVENT_FINALIZE_FREE)
763 evcb->evcb_cb_union.evcb_cbfinalize(evcb, evcb->evcb_arg);
777 struct event_callback *evcb, *next;
778 for (evcb = TAILQ_FIRST(&base->activequeues[i]); evcb; ) {
779 next = TAILQ_NEXT(evcb, evcb_active_next);
780 deleted += event_base_cancel_single_callback_(base, evcb, run_finalizers);
781 evcb = next;
786 struct event_callback *evcb;
787 while ((evcb = TAILQ_FIRST(&base->active_later_queue))) {
788 deleted += event_base_cancel_single_callback_(base, evcb, run_finalizers);
1595 struct event_callback *evcb;
1600 for (evcb = TAILQ_FIRST(activeq); evcb; evcb = TAILQ_FIRST(activeq)) {
1602 if (evcb->evcb_flags & EVLIST_INIT) {
1603 ev = event_callback_to_event(evcb);
1606 event_queue_remove_active(base, evcb);
1617 event_queue_remove_active(base, evcb);
1620 evcb, evcb->evcb_closure, evcb->evcb_cb_union.evcb_callback));
1623 if (!(evcb->evcb_flags & EVLIST_INTERNAL))
1627 base->current_event = evcb;
1632 switch (evcb->evcb_closure) {
1650 void (*evcb_selfcb)(struct event_callback *, void *) = evcb->evcb_cb_union.evcb_selfcb;
1652 evcb_selfcb(evcb, evcb->evcb_arg);
1658 int evcb_closure = evcb->evcb_closure;
1662 EVUTIL_ASSERT((evcb->evcb_flags & EVLIST_FINALIZING));
1671 void (*evcb_cbfinalize)(struct event_callback *, void *) = evcb->evcb_cb_union.evcb_cbfinalize;
1673 EVUTIL_ASSERT((evcb->evcb_flags & EVLIST_FINALIZING));
1675 evcb_cbfinalize(evcb, evcb->evcb_arg);
2149 struct event_callback *evcb = base->current_event;
2150 if (evcb->evcb_flags & EVLIST_INIT)
2151 ev = event_callback_to_event(evcb);
2239 event_callback_finalize_nolock_(struct event_base *base, unsigned flags, struct event_callback *evcb, void (*cb)(struct event_callback *, void *))
2242 if (evcb->evcb_flags & EVLIST_INIT) {
2243 ev = event_callback_to_event(evcb);
2246 event_callback_cancel_nolock_(base, evcb, 0); /*XXX can this fail?*/
2249 evcb->evcb_closure = EV_CLOSURE_CB_FINALIZE;
2250 evcb->evcb_cb_union.evcb_cbfinalize = cb;
2251 event_callback_activate_nolock_(base, evcb); /* XXX can this really fail?*/
2252 evcb->evcb_flags |= EVLIST_FINALIZING;
2256 event_callback_finalize_(struct event_base *base, unsigned flags, struct event_callback *evcb, void (*cb)(struct event_callback *, void *))
2259 event_callback_finalize_nolock_(base, flags, evcb, cb);
2282 struct event_callback *evcb = evcbs[i];
2283 if (evcb == base->current_event) {
2284 event_callback_finalize_nolock_(base, 0, evcb, cb);
2287 event_callback_cancel_nolock_(base, evcb, 0);
2942 struct event_callback *evcb)
2946 r = event_callback_activate_nolock_(base, evcb);
2953 struct event_callback *evcb)
2957 if (evcb->evcb_flags & EVLIST_FINALIZING)
2960 switch (evcb->evcb_flags & (EVLIST_ACTIVE|EVLIST_ACTIVE_LATER)) {
2964 event_queue_remove_active_later(base, evcb);
2973 event_queue_insert_active(base, evcb);
2983 struct event_callback *evcb)
2985 if (evcb->evcb_flags & (EVLIST_ACTIVE|EVLIST_ACTIVE_LATER))
2988 event_queue_insert_active_later(base, evcb);
3004 struct event_callback *evcb)
3008 r = event_callback_cancel_nolock_(base, evcb, 0);
3015 struct event_callback *evcb, int even_if_finalizing)
3017 if ((evcb->evcb_flags & EVLIST_FINALIZING) && !even_if_finalizing)
3020 if (evcb->evcb_flags & EVLIST_INIT)
3021 return event_del_nolock_(event_callback_to_event(evcb),
3024 switch ((evcb->evcb_flags & (EVLIST_ACTIVE|EVLIST_ACTIVE_LATER))) {
3031 event_queue_remove_active(base, evcb);
3034 event_queue_remove_active_later(base, evcb);
3185 event_queue_remove_active(struct event_base *base, struct event_callback *evcb)
3188 if (EVUTIL_FAILURE_CHECK(!(evcb->evcb_flags & EVLIST_ACTIVE))) {
3190 evcb, EVLIST_ACTIVE);
3193 DECR_EVENT_COUNT(base, evcb->evcb_flags);
3194 evcb->evcb_flags &= ~EVLIST_ACTIVE;
3197 TAILQ_REMOVE(&base->activequeues[evcb->evcb_pri],
3198 evcb, evcb_active_next);
3201 event_queue_remove_active_later(struct event_base *base, struct event_callback *evcb)
3204 if (EVUTIL_FAILURE_CHECK(!(evcb->evcb_flags & EVLIST_ACTIVE_LATER))) {
3206 evcb, EVLIST_ACTIVE_LATER);
3209 DECR_EVENT_COUNT(base, evcb->evcb_flags);
3210 evcb->evcb_flags &= ~EVLIST_ACTIVE_LATER;
3213 TAILQ_REMOVE(&base->active_later_queue, evcb, evcb_active_next);
3326 event_queue_insert_active(struct event_base *base, struct event_callback *evcb)
3330 if (evcb->evcb_flags & EVLIST_ACTIVE) {
3335 INCR_EVENT_COUNT(base, evcb->evcb_flags);
3337 evcb->evcb_flags |= EVLIST_ACTIVE;
3341 EVUTIL_ASSERT(evcb->evcb_pri < base->nactivequeues);
3342 TAILQ_INSERT_TAIL(&base->activequeues[evcb->evcb_pri],
3343 evcb, evcb_active_next);
3347 event_queue_insert_active_later(struct event_base *base, struct event_callback *evcb)
3350 if (evcb->evcb_flags & (EVLIST_ACTIVE_LATER|EVLIST_ACTIVE)) {
3355 INCR_EVENT_COUNT(base, evcb->evcb_flags);
3356 evcb->evcb_flags |= EVLIST_ACTIVE_LATER;
3359 EVUTIL_ASSERT(evcb->evcb_pri < base->nactivequeues);
3360 TAILQ_INSERT_TAIL(&base->active_later_queue, evcb, evcb_active_next);
3390 struct event_callback *evcb;
3393 while ((evcb = TAILQ_FIRST(&base->active_later_queue))) {
3394 TAILQ_REMOVE(&base->active_later_queue, evcb, evcb_active_next);
3395 evcb->evcb_flags = (evcb->evcb_flags & ~EVLIST_ACTIVE_LATER) | EVLIST_ACTIVE;
3396 EVUTIL_ASSERT(evcb->evcb_pri < base->nactivequeues);
3397 TAILQ_INSERT_TAIL(&base->activequeues[evcb->evcb_pri], evcb, evcb_active_next);
3398 base->n_deferreds_queued += (evcb->evcb_closure == EV_CLOSURE_CB_SELF);
3671 struct event_callback *evcb;
3672 TAILQ_FOREACH(evcb, &base->activequeues[i], evcb_active_next) {
3673 if ((evcb->evcb_flags & (EVLIST_INIT|EVLIST_INSERTED|EVLIST_TIMEOUT)) != EVLIST_INIT) {
3679 ev = event_callback_to_event(evcb);
3923 struct event_callback *evcb;
3925 TAILQ_FOREACH(evcb, &base->activequeues[i], evcb_active_next) {
3926 EVUTIL_ASSERT((evcb->evcb_flags & (EVLIST_ACTIVE|EVLIST_ACTIVE_LATER)) == EVLIST_ACTIVE);
3927 EVUTIL_ASSERT(evcb->evcb_pri == i);
3933 struct event_callback *evcb;
3934 TAILQ_FOREACH(evcb, &base->active_later_queue, evcb_active_next) {
3935 EVUTIL_ASSERT((evcb->evcb_flags & (EVLIST_ACTIVE|EVLIST_ACTIVE_LATER)) == EVLIST_ACTIVE_LATER);