testatomic: destroy threads + free all memory at quit to fix --trackmem

(cherry picked from commit 831c79d32f)
This commit is contained in:
Anonymous Maarten
2024-05-13 16:05:55 +02:00
committed by Sam Lantinga
parent 482d964733
commit 799ede831e
+8 -2
View File
@@ -132,6 +132,7 @@ static void runAdder(void)
{ {
Uint32 start, end; Uint32 start, end;
int T = NThreads; int T = NThreads;
SDL_Thread *threads[NThreads];
start = SDL_GetTicks(); start = SDL_GetTicks();
@@ -139,14 +140,18 @@ static void runAdder(void)
SDL_AtomicSet(&threadsRunning, NThreads); SDL_AtomicSet(&threadsRunning, NThreads);
while (T--) { for (i = 0; i < NThreads; i++) {
SDL_CreateThread(adder, "Adder", NULL); threads[i] = SDL_CreateThread(adder, "Adder", NULL);
} }
while (SDL_AtomicGet(&threadsRunning) > 0) { while (SDL_AtomicGet(&threadsRunning) > 0) {
SDL_SemWait(threadDone); SDL_SemWait(threadDone);
} }
for (i = 0; i < NThreads; i++) {
SDL_WaitThread(threads[i], NULL);
}
SDL_DestroySemaphore(threadDone); SDL_DestroySemaphore(threadDone);
end = SDL_GetTicks(); end = SDL_GetTicks();
@@ -733,6 +738,7 @@ int main(int argc, char *argv[])
RunFIFOTest(SDL_FALSE); RunFIFOTest(SDL_FALSE);
#endif #endif
RunFIFOTest(SDL_TRUE); RunFIFOTest(SDL_TRUE);
SDL_Quit();
SDLTest_CommonQuit(state); SDLTest_CommonQuit(state);
return 0; return 0;
} }