|
Size: 1898
Comment: update content - tip in address
|
Size: 1906
Comment: update content - change tip to default
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 9: | Line 9: |
| '''Include File(s):''' [[http://hg.libsdl.org/SDL/file/tip/include/SDL_thread.h|SDL_thread.h]], [[http://hg.libsdl.org/SDL/file/tip/include/SDL_mutex.h|SDL_mutex.h]] ^(contains thread synchronization primitives)^ | '''Include File(s):''' [[http://hg.libsdl.org/SDL/file/default/include/SDL_thread.h|SDL_thread.h]], [[http://hg.libsdl.org/SDL/file/default/include/SDL_mutex.h|SDL_mutex.h]] ^(contains thread synchronization primitives)^ |
DRAFT |
Thread Management
Include File(s): SDL_thread.h, SDL_mutex.h (contains thread synchronization primitives)
Contents
Introduction
The SDL thread structure is defined in SDL_thread.c.
typedef struct SDL_Thread SDL_Thread;
We compile SDL into a DLL. This means that it's the DLL which creates a new thread for the calling process with the SDL_CreateThread() API. green
There is a problem with this, that only the RTL of the SDL.DLL will be initialized for those threads, and not the RTL of the calling application!
To solve this, we make a little hack here. green
We'll always use the caller's _beginthread() and _endthread() APIs to start a new thread. This way, if it's the SDL.DLL which uses this API, then the RTL of SDL.DLL will be used to create the new thread, and if it's the application, then the RTL of the application will be used.
So, in short: Always use the _beginthread() and _endthread() of the calling runtime library!
green
