Explorar el Código

Make sure timers are initialized before any threads start

This prevents race conditions and divide by zero if multiple threads start using the time functions simultaneously.
Sam Lantinga hace 1 año
padre
commit
b378bc5c83
Se han modificado 1 ficheros con 5 adiciones y 0 borrados
  1. 5 0
      src/thread/SDL_thread.c

+ 5 - 0
src/thread/SDL_thread.c

@@ -27,6 +27,7 @@
 #include "SDL_systhread.h"
 #include "SDL_hints.h"
 #include "../SDL_error_c.h"
+#include "../timer/SDL_timer_c.h"
 
 /* The storage is local to the thread, but the IDs are global for the process */
 
@@ -371,6 +372,10 @@ SDL_Thread *SDL_CreateThreadWithStackSize(int(SDLCALL *fn)(void *),
 
     SDL_InitTLSData();
 
+#ifndef SDL_TIMERS_DISABLED
+    SDL_TicksInit();
+#endif
+
     /* Allocate memory for the thread info structure */
     thread = (SDL_Thread *)SDL_calloc(1, sizeof(*thread));
     if (!thread) {