summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root>2010-02-14 19:23:19 +0000
committerroot <root>2010-02-14 19:23:19 +0000
commitff4f50da8c13f026c1d46e0352d13feee660d9e3 (patch)
tree2668a067ba768e6724ca1cbd688cda2b519b771c
parent4dbfe801615d8cac7991ea6e22754860e4ff1817 (diff)
forgot to ev_stop in ev_embed_stop
-rw-r--r--Changes2
-rw-r--r--ev.c10
2 files changed, 8 insertions, 4 deletions
diff --git a/Changes b/Changes
index 962eab6..1aaebaa 100644
--- a/Changes
+++ b/Changes
@@ -1,5 +1,7 @@
Revision history for libev, a high-performance and full-featured event loop.
+ - ev_embed_stop did not correctly stop the watcher (very good
+ testcase by Vladimir Timofeev).
- applied win32 fixes by Michael Lenaghan.
- remove dependency on sys/queue.h on freebsd (patch by Vanilla Hsu).
- configure now prepends -O3, not appends it, so one can still
diff --git a/ev.c b/ev.c
index 6ac8367..f89d7fd 100644
--- a/ev.c
+++ b/ev.c
@@ -2590,11 +2590,11 @@ ev_timer_stop (EV_P_ ev_timer *w)
}
}
- EV_FREQUENT_CHECK;
-
ev_at (w) -= mn_now;
ev_stop (EV_A_ (W)w);
+
+ EV_FREQUENT_CHECK;
}
void noinline
@@ -2683,9 +2683,9 @@ ev_periodic_stop (EV_P_ ev_periodic *w)
}
}
- EV_FREQUENT_CHECK;
-
ev_stop (EV_A_ (W)w);
+
+ EV_FREQUENT_CHECK;
}
void noinline
@@ -3431,6 +3431,8 @@ ev_embed_stop (EV_P_ ev_embed *w)
ev_prepare_stop (EV_A_ &w->prepare);
ev_fork_stop (EV_A_ &w->fork);
+ ev_stop (EV_A_ (W)w);
+
EV_FREQUENT_CHECK;
}
#endif