UI: Fix wrong order for sources_mutex #11687
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Below callstack is from graphic thread where gs_enter has been gotten. As this, the order of requesting mutex is as gs->sources_mutex. That is conflicting with basic logic in libobs. About basic request order, sources_mutex should be requested before gs.
[callstask]
render_displays
(1)request gs enter
DrawSpacingHelpers()
CreateLabel
obs_source_create_private
(2)request obs->data.sources_mutex
Motivation and Context
keep the stable order for requesting mutex. otherwise there will be a nested logic which will cause block.
But what I must declare is that this block is not easily happen
How Has This Been Tested?
run obs and select any video source,
ensure pixel label in preview window can be displayed normally
Types of changes
Bug fix (non-breaking change which fixes an issue) -
Checklist: