GNOME Bugzilla – Bug 584657
gst-launch should set pipeline to PAUSED before clearing main loop
Last modified: 2009-08-10 23:34:00 UTC
When it is shutting down a pipeline after ctrl-c, gst-launch currently calls g_main_context_iteration() to clear any pending signals, idle functions, and such. However, the pipeline is still running at this point, so could be generating new idle functions and signals. If the main loop never becomes completely idle (easy to do with valgrind or in error situations), gst-launch will never PAUSE the pipeline and subsequently not exit.
Created attachment 135844 [details] [review] patch
commit 08fb55c2e1053e19a6c88e365e567d3352e92ee4 Author: David Schleef <ds@schleef.org> Date: Tue Jun 2 13:45:52 2009 -0700 tools: Set pipeline to PAUSED before waiting for main loop idle When it is shutting down a pipeline after ctrl-c, set pipeline to paused before waiting for the main loop to complete all pending transactions. Fixes #584657. If some part of the pipeline is generating signals or idle functions at a fast rate, waiting for a main loop iteration may never return.