Commit 9f4baeea53b39ef20869a7ccd7d0b8fddba52726

Sam Lantinga 2022-09-08T20:08:20

Clean up thread local storage when quitting SDL SDL_Quit() should be the last SDL API that you call before exiting your application, and is intended to clean up all internal state. If real-life applications are relying on thread-local storage after SDL_Quit() we could potentially add a hint to control this behavior. Fixes https://github.com/libsdl-org/SDL/issues/6200

1
2
3
4
5
6
7
8
9
10
11
12
13
diff --git a/src/SDL.c b/src/SDL.c
index 59602d6..643b5ca 100644
--- a/src/SDL.c
+++ b/src/SDL.c
@@ -505,6 +505,8 @@ SDL_Quit(void)
      */
     SDL_memset( SDL_SubsystemRefCount, 0x0, sizeof(SDL_SubsystemRefCount) );
 
+    SDL_TLSCleanup();
+
     SDL_bInMainQuit = SDL_FALSE;
 }