mirror of
https://github.com/obsproject/obs-studio.git
synced 2026-09-01 15:49:51 +08:00
e541e170a3
For displays, instead of using the draw_callbacks_mutex and risk a reverse mutual lock scenario, use a separate mutex to lock display size data. This bug was exposed when trying to reorder filters in the UI module. The UI thread would try to reorder the filters, locking the filter mutex of the source, and then the reorder would signal the UI to resize the display, so the display would lock its draw_callbacks_mutex. Then, in the graphics thread, it would lock the display's draw_callbacks_mutex, try to draw the source, and then the source would try to lock that same filter mutex. A mutex trace: UI thread -> lock source filter mutex -> waiting on display mutex graphics thread -> lock display mutex -> waiting on source filter mutex Closes jp9000/obs-studio#714