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

View File

@@ -132,6 +132,7 @@ static void runAdder(void)
{
Uint32 start, end;
int T = NThreads;
SDL_Thread *threads[NThreads];
start = SDL_GetTicks();
@@ -139,14 +140,18 @@ static void runAdder(void)
SDL_AtomicSet(&threadsRunning, NThreads);
while (T--) {
SDL_CreateThread(adder, "Adder", NULL);
for (i = 0; i < NThreads; i++) {
threads[i] = SDL_CreateThread(adder, "Adder", NULL);
}
while (SDL_AtomicGet(&threadsRunning) > 0) {
SDL_SemWait(threadDone);
}
for (i = 0; i < NThreads; i++) {
SDL_WaitThread(threads[i], NULL);
}
SDL_DestroySemaphore(threadDone);
end = SDL_GetTicks();
@@ -733,6 +738,7 @@ int main(int argc, char *argv[])
RunFIFOTest(SDL_FALSE);
#endif
RunFIFOTest(SDL_TRUE);
SDL_Quit();
SDLTest_CommonQuit(state);
return 0;
}