pipeline: Call gst_task_cleanup_all() before checking reference counts after shutdown
authorSebastian Dröge <sebastian@centricular.com>
Wed, 2 Jan 2019 21:35:11 +0000 (23:35 +0200)
committerSebastian Dröge <slomo@coaxion.net>
Thu, 3 Jan 2019 14:05:31 +0000 (14:05 +0000)
We have to ensure that all background threads from thread pools are shut
down, or otherwise they might not have had a chance yet to drop their
last reference to the pipeline and then the assertion for a reference
count of 1 on the pipeline fails.

tests/check/gst/gstpipeline.c

index 7d83b02..e4951f8 100644 (file)
@@ -223,6 +223,12 @@ GST_START_TEST (test_bus)
   fail_unless (ret == GST_STATE_CHANGE_SUCCESS);
   fail_unless (current == GST_STATE_NULL, "state is not NULL but %d", current);
 
+  /* We have to ensure that all background threads from thread pools are shut
+   * down, or otherwise they might not have had a chance yet to drop
+   * their last reference to the pipeline and then the assertion below fails
+   */
+  gst_task_cleanup_all ();
+
   ASSERT_OBJECT_REFCOUNT (pipeline, "pipeline at start of cleanup", 1);
   ASSERT_OBJECT_REFCOUNT (bus, "bus at start of cleanup", 3);