From 33a38153f4b50289d4763640b6aca44e8eaefe01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Thu, 11 Feb 2010 20:14:59 +0000 Subject: [PATCH] gst-launch: don't leak timeout GSource --- tools/gst-launch.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tools/gst-launch.c b/tools/gst-launch.c index 38acb754df..caca18b67e 100644 --- a/tools/gst-launch.c +++ b/tools/gst-launch.c @@ -387,6 +387,9 @@ play_signal_setup (void) static EventLoopResult event_loop (GstElement * pipeline, gboolean blocking, GstState target_state) { +#ifndef DISABLE_FAULT_HANDLER + gulong timeout_id; +#endif GstBus *bus; GstMessage *message = NULL; EventLoopResult res = ELR_NO_ERROR; @@ -395,7 +398,7 @@ event_loop (GstElement * pipeline, gboolean blocking, GstState target_state) bus = gst_element_get_bus (GST_ELEMENT (pipeline)); #ifndef DISABLE_FAULT_HANDLER - g_timeout_add (250, (GSourceFunc) check_intr, pipeline); + timeout_id = g_timeout_add (250, (GSourceFunc) check_intr, pipeline); #endif while (TRUE) { @@ -653,6 +656,9 @@ exit: if (message) gst_message_unref (message); gst_object_unref (bus); +#ifndef DISABLE_FAULT_HANDLER + g_source_remove (timeout_id); +#endif return res; } }