summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root>2008-02-05 23:56:33 +0000
committerroot <root>2008-02-05 23:56:33 +0000
commita82219690a0ce1703abdc9bf10d0d4e5a9d26efa (patch)
tree01acffca4a20ad9b7a99e2fae33c1e998e8326ff
parentc83c7b9d34c4856e08c50a4a6c1417cdb2704348 (diff)
compile without it, too, fix memleak
-rw-r--r--ev.c25
-rw-r--r--ev.pod2
-rw-r--r--ev_vars.h2
3 files changed, 17 insertions, 12 deletions
diff --git a/ev.c b/ev.c
index 80f27e3..3ab0517 100644
--- a/ev.c
+++ b/ev.c
@@ -849,6 +849,7 @@ pipecb (EV_P_ ev_io *iow, int revents)
ev_feed_signal_event (EV_A_ signum + 1);
}
+#if EV_ASYNC_ENABLE
if (gotasync)
{
int i;
@@ -861,6 +862,7 @@ pipecb (EV_P_ ev_io *iow, int revents)
ev_feed_event (EV_A_ asyncs [i], EV_ASYNC);
}
}
+#endif
}
/*****************************************************************************/
@@ -1081,13 +1083,19 @@ loop_init (EV_P_ unsigned int flags)
}
#endif
- ev_rt_now = ev_time ();
- mn_now = get_clock ();
- now_floor = mn_now;
- rtmn_diff = ev_rt_now - mn_now;
+ ev_rt_now = ev_time ();
+ mn_now = get_clock ();
+ now_floor = mn_now;
+ rtmn_diff = ev_rt_now - mn_now;
io_blocktime = 0.;
timeout_blocktime = 0.;
+ backend = 0;
+ backend_fd = -1;
+ gotasync = 0;
+#if EV_USE_INOTIFY
+ fs_fd = -2;
+#endif
/* pid check not overridable via env */
#ifndef _WIN32
@@ -1103,12 +1111,6 @@ loop_init (EV_P_ unsigned int flags)
if (!(flags & 0x0000ffffUL))
flags |= ev_recommended_backends ();
- backend = 0;
- backend_fd = -1;
-#if EV_USE_INOTIFY
- fs_fd = -2;
-#endif
-
#if EV_USE_PORT
if (!backend && (flags & EVBACKEND_PORT )) backend = port_init (EV_A_ flags);
#endif
@@ -1189,6 +1191,9 @@ loop_destroy (EV_P)
#endif
array_free (prepare, EMPTY);
array_free (check, EMPTY);
+#if EV_ASYNC_ENABLE
+ array_free (async, EMPTY);
+#endif
backend = 0;
}
diff --git a/ev.pod b/ev.pod
index 16bf5be..b55d936 100644
--- a/ev.pod
+++ b/ev.pod
@@ -2944,7 +2944,7 @@ on backend and wether C<ev_io_set> was used).
Priorities are implemented by allocating some space for each
priority. When doing priority-based operations, libev usually has to
linearly search all the priorities, but starting/stopping and activating
-watchers becomes O(1) w.r.t. prioritiy handling.
+watchers becomes O(1) w.r.t. priority handling.
=item Sending an ev_async: O(1)
diff --git a/ev_vars.h b/ev_vars.h
index c9637f2..249aa2f 100644
--- a/ev_vars.h
+++ b/ev_vars.h
@@ -140,8 +140,8 @@ VARx(int, forkmax)
VARx(int, forkcnt)
#endif
-#if EV_ASYNC_ENABLE || EV_GENWRAP
VARx(EV_ATOMIC_T, gotasync)
+#if EV_ASYNC_ENABLE || EV_GENWRAP
VARx(struct ev_async **, asyncs)
VARx(int, asyncmax)
VARx(int, asynccnt)