aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/eval.c10
-rw-r--r--src/nvim/main.c1
2 files changed, 10 insertions, 1 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index e6f40a0bb8..92e572db2f 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -16569,7 +16569,7 @@ static void timer_due_cb(TimeWatcher *tw, void *data)
{
timer_T *timer = (timer_T *)data;
if (timer->stopped) {
- return;
+ return;
}
// if repeat was negative repeat forever
if (timer->repeat_count >= 0 && --timer->repeat_count == 0) {
@@ -16609,6 +16609,14 @@ static void timer_free_cb(TimeWatcher *tw, void *data)
xfree(timer);
}
+void timer_teardown(void)
+{
+ timer_T *timer;
+ map_foreach_value(timers, timer, {
+ timer_stop(timer);
+ })
+}
+
/*
* "tolower(string)" function
*/
diff --git a/src/nvim/main.c b/src/nvim/main.c
index 2b14e6a777..ba545c0815 100644
--- a/src/nvim/main.c
+++ b/src/nvim/main.c
@@ -161,6 +161,7 @@ void event_teardown(void)
input_stop();
channel_teardown();
process_teardown(&main_loop);
+ timer_teardown();
server_teardown();
signal_teardown();
terminal_teardown();