Fix "Cannot initialize Sdl from more than one thread" for tests / CI #1337
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.
Fix #1323
This addresses the issue above, which seems to have been introduced by #1254, which added a flag to indicate which thread was initialized as the main thread. This flag was never cleared which meant that only one thread would ever be the main, if SDL was then quit and attempted to initialize on another thread (while still only having 1 context) it would fail.
If the intention of
IS_MAIN_THREAD
was to only allowSDL_Init
to be invoked once per application, I can find another solution. But I believe there is nothing wrong with this,SDL_Init
itself is reference counted, and the tests show an expectation to be able to do so.