GNOME Bugzilla – Bug 797260
shmsink: do not render if element is unlocked
Last modified: 2018-10-10 16:07:23 UTC
A race condition might occur in shmsink when wait-for-connecition is TRUE and the pipeline is going to NULL. The unlock() function will be called, but unlocking doesn't mean the render() function can't be called again which in shmsink would could cause other locks to happen (because of the conditional variable). Since unlock() has already happened, the conditional variable will be waiting and this will block the streaming thread not letting the pipeline to go to NULL.
+ Trace 238699
Thread 3 (Thread 0x7ff799ed2700 (LWP 30791))
Thread 1 (Thread 0x7ff7a0e33700 (LWP 30789))
Created attachment 373873 [details] [review] do not block if element is unlocked Not sure this is the right way to do this. We just not allow more locks if the element is unlocked.
I'd tested it and it looks correct to me.
Patch looks good, merging!