Create a new thread with a default stack size.
Defined in <SDL3/SDL_thread.h>
fn | the SDL_ThreadFunction function to call in the new thread |
name | the name of the thread |
data | a pointer that is passed to fn |
Returns an opaque pointer to the new thread object on success, NULL if the new thread could not be created; call SDL_GetError() for more information.
This is equivalent to calling:
This function is available since SDL 3.0.0.
#include <SDL3/SDL.h>
/* Very simple thread - counts 0 to 9 delaying 50ms between increments */
static int TestThread(void *ptr)
{
int cnt;
for (cnt = 0; cnt < 10; ++cnt) {
SDL_Log("Thread counter: %d", cnt);
SDL_Delay(50);
}
return cnt;
}
int main(int argc, char *argv[])
{
SDL_Thread *thread;
int threadReturnValue;
SDL_Log("Simple SDL_CreateThread test:");
/* Simply create a thread */
thread = SDL_CreateThread(TestThread, "TestThread", (void *)NULL);
if (NULL == thread) {
SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "SDL_CreateThread failed: %s", SDL_GetError());
} else {
SDL_WaitThread(thread, &threadReturnValue);
SDL_Log("Thread returned value: %d", threadReturnValue);
}
return 0;
}
/*
* Output:
* Simple SDL_CreateThread test:
* Thread counter: 0
* Thread counter: 1
* Thread counter: 2
* Thread counter: 3
* Thread counter: 4
* Thread counter: 5
* Thread counter: 6
* Thread counter: 7
* Thread counter: 8
* Thread counter: 9
* Thread returned value: 10
*/