Buckets:
| /* | |
| Simple DirectMedia Layer | |
| Copyright (C) 1997-2011 Sam Lantinga <slouken@libsdl.org> | |
| This software is provided 'as-is', without any express or implied | |
| warranty. In no event will the authors be held liable for any damages | |
| arising from the use of this software. | |
| Permission is granted to anyone to use this software for any purpose, | |
| including commercial applications, and to alter it and redistribute it | |
| freely, subject to the following restrictions: | |
| 1. The origin of this software must not be misrepresented; you must not | |
| claim that you wrote the original software. If you use this software | |
| in a product, an acknowledgment in the product documentation would be | |
| appreciated but is not required. | |
| 2. Altered source versions must be plainly marked as such, and must not be | |
| misrepresented as being the original software. | |
| 3. This notice may not be removed or altered from any source distribution. | |
| */ | |
| /** | |
| * \file SDL_thread.h | |
| * | |
| * Header for the SDL thread management routines. | |
| */ | |
| /* Thread synchronization primitives */ | |
| /* Set up for C function definitions, even when using C++ */ | |
| /* *INDENT-OFF* */ | |
| extern "C" { | |
| /* *INDENT-ON* */ | |
| /* The SDL thread structure, defined in SDL_thread.c */ | |
| struct SDL_Thread; | |
| typedef struct SDL_Thread SDL_Thread; | |
| /* The SDL thread ID */ | |
| typedef unsigned long SDL_threadID; | |
| /* The SDL thread priority | |
| * | |
| * Note: On many systems you require special privileges to set high priority. | |
| */ | |
| typedef enum { | |
| SDL_THREAD_PRIORITY_LOW, | |
| SDL_THREAD_PRIORITY_NORMAL, | |
| SDL_THREAD_PRIORITY_HIGH | |
| } SDL_ThreadPriority; | |
| /* The function passed to SDL_CreateThread() | |
| It is passed a void* user context parameter and returns an int. | |
| */ | |
| typedef int (SDLCALL * SDL_ThreadFunction) (void *data); | |
| /** | |
| * \file SDL_thread.h | |
| * | |
| * 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. 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. | |
| * | |
| * 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! | |
| */ | |
| typedef unsigned long (__cdecl * pfnSDL_CurrentBeginThread) (void *, unsigned, | |
| unsigned | |
| (__stdcall * | |
| func) (void *), | |
| void *arg, | |
| unsigned, | |
| unsigned | |
| *threadID); | |
| typedef void (__cdecl * pfnSDL_CurrentEndThread) (unsigned code); | |
| typedef uintptr_t(__cdecl * pfnSDL_CurrentBeginThread) (void *, unsigned, | |
| unsigned (__stdcall * | |
| func) (void | |
| *), | |
| void *arg, unsigned, | |
| unsigned *threadID); | |
| typedef void (__cdecl * pfnSDL_CurrentEndThread) (unsigned code); | |
| /** | |
| * Create a thread. | |
| */ | |
| extern DECLSPEC SDL_Thread *SDLCALL | |
| SDL_CreateThread(SDL_ThreadFunction fn, void *data, | |
| pfnSDL_CurrentBeginThread pfnBeginThread, | |
| pfnSDL_CurrentEndThread pfnEndThread); | |
| /** | |
| * Create a thread. | |
| */ | |
| /** | |
| * Create a thread. | |
| */ | |
| /** | |
| * Create a thread. | |
| */ | |
| extern DECLSPEC SDL_Thread *SDLCALL | |
| SDL_CreateThread(SDL_ThreadFunction fn, void *data); | |
| /** | |
| * Get the thread identifier for the current thread. | |
| */ | |
| extern DECLSPEC SDL_threadID SDLCALL SDL_ThreadID(void); | |
| /** | |
| * Get the thread identifier for the specified thread. | |
| * | |
| * Equivalent to SDL_ThreadID() if the specified thread is NULL. | |
| */ | |
| extern DECLSPEC SDL_threadID SDLCALL SDL_GetThreadID(SDL_Thread * thread); | |
| /** | |
| * Set the priority for the current thread | |
| */ | |
| extern DECLSPEC int SDLCALL SDL_SetThreadPriority(SDL_ThreadPriority priority); | |
| /** | |
| * Wait for a thread to finish. | |
| * | |
| * The return code for the thread function is placed in the area | |
| * pointed to by \c status, if \c status is not NULL. | |
| */ | |
| extern DECLSPEC void SDLCALL SDL_WaitThread(SDL_Thread * thread, int *status); | |
| /* Ends C function definitions when using C++ */ | |
| /* *INDENT-OFF* */ | |
| } | |
| /* *INDENT-ON* */ | |
| /* vi: set ts=4 sw=4 expandtab: */ | |
Xet Storage Details
- Size:
- 5.7 kB
- Xet hash:
- f6cc47edb4abb7a86b715bfb4b4c2c93a8cfecb9a097b9153d8af98e8f68f7b8
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.