mirror of
https://github.com/cuberite/libevent.git
synced 2025-09-16 07:45:23 -04:00
event_base_loop and some event logging fixes.
svn:r140
This commit is contained in:
parent
32bed8f9b6
commit
720f7fcc0d
10
event.3
10
event.3
@ -34,6 +34,8 @@
|
|||||||
.Nm event_dispatch ,
|
.Nm event_dispatch ,
|
||||||
.Nm event_loop ,
|
.Nm event_loop ,
|
||||||
.Nm event_loopexit ,
|
.Nm event_loopexit ,
|
||||||
|
.Nm event_base_loop ,
|
||||||
|
.Nm event_base_loopexit ,
|
||||||
.Nm event_set ,
|
.Nm event_set ,
|
||||||
.Nm event_add ,
|
.Nm event_add ,
|
||||||
.Nm event_del ,
|
.Nm event_del ,
|
||||||
@ -81,6 +83,10 @@
|
|||||||
.Fn "event_loop" "int flags"
|
.Fn "event_loop" "int flags"
|
||||||
.Ft int
|
.Ft int
|
||||||
.Fn "event_loopexit" "struct timeval *tv"
|
.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
|
.Ft void
|
||||||
.Fn "event_set" "struct event *ev" "int fd" "short event" "void (*fn)(int, short, void *)" "void *arg"
|
.Fn "event_set" "struct event *ev" "int fd" "short event" "void (*fn)(int, short, void *)" "void *arg"
|
||||||
.Ft int
|
.Ft int
|
||||||
@ -421,8 +427,10 @@ When initializing the library via
|
|||||||
an event base is returned.
|
an event base is returned.
|
||||||
This event base can be used in conjunction with calls to
|
This event base can be used in conjunction with calls to
|
||||||
.Fn event_base_set
|
.Fn event_base_set
|
||||||
|
.Fn event_base_dispatch ,
|
||||||
|
.Fn event_base_loop ,
|
||||||
and
|
and
|
||||||
.Fn event_base_dispatch .
|
.Fn event_base_loopexit .
|
||||||
.Fn event_base_set
|
.Fn event_base_set
|
||||||
should be called after preparing an event with
|
should be called after preparing an event with
|
||||||
.Fn event_set ,
|
.Fn event_set ,
|
||||||
|
15
event.c
15
event.c
@ -290,6 +290,13 @@ event_loopexit(struct timeval *tv)
|
|||||||
current_base, tv));
|
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 */
|
/* not thread safe */
|
||||||
|
|
||||||
int
|
int
|
||||||
@ -347,8 +354,10 @@ event_base_loop(struct event_base *base, int flags)
|
|||||||
timerclear(&tv);
|
timerclear(&tv);
|
||||||
|
|
||||||
/* If we have no events, we just exit */
|
/* 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);
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
res = evsel->dispatch(base, evbase, &tv);
|
res = evsel->dispatch(base, evbase, &tv);
|
||||||
|
|
||||||
@ -368,6 +377,7 @@ event_base_loop(struct event_base *base, int flags)
|
|||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
event_debug(("%s: asked to terminate loop.", __func__));
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -715,8 +725,7 @@ event_queue_remove(struct event_base *base, struct event *ev, int queue)
|
|||||||
ev->ev_flags &= ~queue;
|
ev->ev_flags &= ~queue;
|
||||||
switch (queue) {
|
switch (queue) {
|
||||||
case EVLIST_ACTIVE:
|
case EVLIST_ACTIVE:
|
||||||
if (docount)
|
base->event_count_active--;
|
||||||
base->event_count_active--;
|
|
||||||
TAILQ_REMOVE(base->activequeues[ev->ev_pri],
|
TAILQ_REMOVE(base->activequeues[ev->ev_pri],
|
||||||
ev, ev_active_next);
|
ev, ev_active_next);
|
||||||
break;
|
break;
|
||||||
|
1
event.h
1
event.h
@ -142,6 +142,7 @@ int event_base_set(struct event_base *, struct event *);
|
|||||||
int event_loop(int);
|
int event_loop(int);
|
||||||
int event_base_loop(struct event_base *, int);
|
int event_base_loop(struct event_base *, int);
|
||||||
int event_loopexit(struct timeval *); /* Causes the loop to exit */
|
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_add(ev, tv) event_add(ev, tv)
|
||||||
#define evtimer_set(ev, cb, arg) event_set(ev, -1, 0, cb, arg)
|
#define evtimer_set(ev, cb, arg) event_set(ev, -1, 0, cb, arg)
|
||||||
|
6
log.c
6
log.c
@ -162,9 +162,9 @@ _warn_helper(int severity, int log_errno, const char *fmt, va_list ap)
|
|||||||
|
|
||||||
if (log_errno >= 0) {
|
if (log_errno >= 0) {
|
||||||
len = strlen(buf);
|
len = strlen(buf);
|
||||||
if (len < sizeof(buf)-3) {
|
if (len < sizeof(buf) - 3) {
|
||||||
event_vsnprintf(buf+len, sizeof(buf)-len, ": %s",
|
snprintf(buf + len, sizeof(buf) - len, ": %s",
|
||||||
strerror(log_errno));
|
strerror(log_errno));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user