diff --git a/gst/schedulers/gstbasicscheduler.c b/gst/schedulers/gstbasicscheduler.c index be23f9b867..f80b972efa 100644 --- a/gst/schedulers/gstbasicscheduler.c +++ b/gst/schedulers/gstbasicscheduler.c @@ -983,8 +983,11 @@ gst_basic_scheduler_reset (GstScheduler *sched) GList *elements = GST_BASIC_SCHEDULER_CAST (sched)->elements; while (elements) { - /* FIXME: wingo, do we need to destroy the cothreads here? */ - GST_ELEMENT_THREADSTATE (elements->data) = NULL; + GstElement *element = GST_ELEMENT (elements->data); + if (GST_ELEMENT_THREADSTATE (element)) { + do_cothread_destroy (GST_ELEMENT_THREADSTATE (element)); + GST_ELEMENT_THREADSTATE (element) = NULL; + } elements = g_list_next (elements); }