SDL Wiki
(This is the documentation for SDL3, which is under heavy development and the API is changing! SDL2 is the current stable version!)

SDL_CreateTLS

Create a piece of thread-local storage.

Header File

Defined in SDL_thread.h, but apps should use #include <SDL3/SDL.h>

Syntax

SDL_TLSID SDL_CreateTLS(void);

Return Value

Returns the newly created thread local storage identifier or 0 on error.

Remarks

This creates an identifier that is globally visible to all threads but refers to data that is thread-specific.

Version

This function is available since SDL 3.0.0.

Code Examples

// BEWARE: This code example was migrated from the SDL2 Wiki, by only updating the names.

static SDL_SpinLock tls_lock;
static SDL_TLSID thread_local_storage;
void SetMyThreadData(void *value)
{
    if (!thread_local_storage) {
        SDL_LockSpinlock(&tls_lock);
        if (!thread_local_storage) {
            thread_local_storage = SDL_CreateTLS();
        }
        SDL_UnlockSpinlock(&tls_lock);
    }
    SDL_SetTLS(thread_local_storage, value, 0);
}
void *GetMyThreadData(void)
{
    return SDL_GetTLS(thread_local_storage);
}

See Also


CategoryAPI, CategoryAPIFunction


[ edit | delete | history | feedback | raw ]

[ front page | index | search | recent changes | git repo | offline html ]

All wiki content is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0).
Wiki powered by ghwikipp.