summaryrefslogtreecommitdiffstats
path: root/libev/event.c
diff options
context:
space:
mode:
Diffstat (limited to 'libev/event.c')
-rw-r--r--libev/event.c35
1 files changed, 29 insertions, 6 deletions
diff --git a/libev/event.c b/libev/event.c
index aaf6d53..5586cd3 100644
--- a/libev/event.c
+++ b/libev/event.c
@@ -1,7 +1,7 @@
/*
* libevent compatibility layer
*
- * Copyright (c) 2007,2008,2009,2010 Marc Alexander Lehmann <libev@schmorp.de>
+ * Copyright (c) 2007,2008,2009,2010,2012 Marc Alexander Lehmann <libev@schmorp.de>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modifica-
@@ -78,13 +78,15 @@ ev_tv_get (struct timeval *tv)
#define EVENT_STRINGIFY(s) # s
#define EVENT_VERSION(a,b) EVENT_STRINGIFY (a) "." EVENT_STRINGIFY (b)
-const char *event_get_version (void)
+const char *
+event_get_version (void)
{
/* returns ABI, not API or library, version */
return EVENT_VERSION (EV_VERSION_MAJOR, EV_VERSION_MINOR);
}
-const char *event_get_method (void)
+const char *
+event_get_method (void)
{
return "libev";
}
@@ -105,6 +107,23 @@ void *event_init (void)
return ev_x_cur;
}
+const char *
+event_base_get_method (const struct event_base *base)
+{
+ return "libev";
+}
+
+struct event_base *
+event_base_new (void)
+{
+#if EV_MULTIPLICITY
+ return (struct event_base *)ev_loop_new (EVFLAG_AUTO);
+#else
+ assert (("libev: multiple event bases not supported when not compiled with EV_MULTIPLICITY"));
+ return NULL;
+#endif
+}
+
void event_base_free (struct event_base *base)
{
dLOOPbase;
@@ -137,6 +156,12 @@ int event_loopexit (struct timeval *tv)
return event_base_loopexit (ev_x_cur, tv);
}
+event_callback_fn event_get_callback
+(const struct event *ev)
+{
+ return ev->ev_callback;
+}
+
static void
ev_x_cb (struct event *ev, int revents)
{
@@ -332,9 +357,7 @@ int event_base_loop (struct event_base *base, int flags)
{
dLOOPbase;
- ev_run (EV_A_ flags);
-
- return 0;
+ return !ev_run (EV_A_ flags);
}
int event_base_dispatch (struct event_base *base)