mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-09-05 19:08:12 +00:00
testatomic: destroy threads + free all memory at quit to fix --trackmem
(cherry picked from commit 831c79d32f
)
This commit is contained in:

committed by
Sam Lantinga

parent
482d964733
commit
799ede831e
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user