summaryrefslogtreecommitdiff
path: root/ev.c
diff options
context:
space:
mode:
Diffstat (limited to 'ev.c')
-rw-r--r--ev.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/ev.c b/ev.c
index 300049e..a80e69a 100644
--- a/ev.c
+++ b/ev.c
@@ -132,7 +132,7 @@ typedef struct
int events;
} ANPENDING;
-#ifdef EV_MULTIPLICITY
+#if EV_MULTIPLICITY
struct ev_loop
{
@@ -544,7 +544,7 @@ ev_method (EV_P)
return method;
}
-static void
+inline int
loop_init (EV_P_ int methods)
{
if (!method)
@@ -603,16 +603,19 @@ loop_init (EV_P_ int methods)
return method;
}
-#ifdef EV_MULTIPLICITY
+#if EV_MULTIPLICITY
struct ev_loop *
ev_loop_new (int methods)
{
struct ev_loop *loop = (struct ev_loop *)calloc (1, sizeof (struct ev_loop));
- loop_init (EV_A_ methods);
+ if (loop_init (EV_A_ methods))
+ return loop;
- return loop;
+ ev_loop_delete (loop);
+
+ return 0;
}
void
@@ -627,7 +630,7 @@ ev_loop_delete (EV_P)
int
ev_init (int methods)
{
- loop_init ();
+ return loop_init (methods);
}
#endif