.Nm event_dispatch ,
.Nm event_loop ,
.Nm event_loopexit ,
+.Nm event_base_loop ,
+.Nm event_base_loopexit ,
.Nm event_set ,
.Nm event_add ,
.Nm event_del ,
.Fn "event_loop" "int flags"
.Ft int
.Fn "event_loopexit" "struct timeval *tv"
+.Ft int
+.Fn "event_base_loop" "struct event_base *" "int flags"
+.Ft int
+.Fn "event_base_loopexit" "struct event_base *" "struct timeval *tv"
.Ft void
.Fn "event_set" "struct event *ev" "int fd" "short event" "void (*fn)(int, short, void *)" "void *arg"
.Ft int
an event base is returned.
This event base can be used in conjunction with calls to
.Fn event_base_set
+.Fn event_base_dispatch ,
+.Fn event_base_loop ,
and
-.Fn event_base_dispatch .
+.Fn event_base_loopexit .
.Fn event_base_set
should be called after preparing an event with
.Fn event_set ,
current_base, tv));
}
+int
+event_base_loopexit(struct event_base *event_base, struct timeval *tv)
+{
+ return (event_once(-1, EV_TIMEOUT, event_loopexit_cb,
+ event_base, tv));
+}
+
/* not thread safe */
int
timerclear(&tv);
/* If we have no events, we just exit */
- if (!event_haveevents(base))
+ if (!event_haveevents(base)) {
+ event_debug(("%s: no events registered.", __func__));
return (1);
+ }
res = evsel->dispatch(base, evbase, &tv);
return (-1);
}
+ event_debug(("%s: asked to terminate loop.", __func__));
return (0);
}
ev->ev_flags &= ~queue;
switch (queue) {
case EVLIST_ACTIVE:
- if (docount)
- base->event_count_active--;
+ base->event_count_active--;
TAILQ_REMOVE(base->activequeues[ev->ev_pri],
ev, ev_active_next);
break;
int event_loop(int);
int event_base_loop(struct event_base *, int);
int event_loopexit(struct timeval *); /* Causes the loop to exit */
+int event_base_loopexit(struct event_base *, struct timeval *);
#define evtimer_add(ev, tv) event_add(ev, tv)
#define evtimer_set(ev, cb, arg) event_set(ev, -1, 0, cb, arg)
if (log_errno >= 0) {
len = strlen(buf);
- if (len < sizeof(buf)-3) {
- event_vsnprintf(buf+len, sizeof(buf)-len, ": %s",
- strerror(log_errno));
+ if (len < sizeof(buf) - 3) {
+ snprintf(buf + len, sizeof(buf) - len, ": %s",
+ strerror(log_errno));
}
}