GNOME Bugzilla – Bug 675626
d3dvideosink: fix several deadlocks
Last modified: 2012-05-09 08:39:08 UTC
The following patch several potential deadlock in the d3d video sink. release_swap_chain() and initialize_swap_chain() are called from set_windows_handle() with the swap_chain lock. notify_device_lost() and resize_swap_chain() are called from show_frame() with the shared_3d3_dev lock and the swap_chain lock. notify_device_lost() is called from device_list() with shared_d3d_dev lock and shared_d3d lock This patch needs more testing.
Created attachment 213611 [details] [review] fix several deadlocks
This doesn't apply to latest gst-plugins-bad git master and not to the 0.10 branch either. Can you rebase it?
Created attachment 213679 [details] [review] Fix deadlock when the device is lost Loosing the device (eg: UAC pops in) creates a deadlock. SendMessage() is synchronous and the swap chain lock is taken again in SharedHiddenWndProc()
Is only the last patch required now?
Yes, only the last one is required
commit 171321c5ebef7f79f41a802aacf311c2a0338cb0 Author: Andoni Morales Alastruey <ylatuya@gmail.com> Date: Tue May 8 17:58:58 2012 +0200 d3dvideosink: fix deadlock when the device is lost