1 /* 2 SDL - Simple DirectMedia Layer 3 Copyright (C) 1997-2004 Sam Lantinga 4 5 This library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Library General Public 7 License as published by the Free Software Foundation; either 8 version 2 of the License, or (at your option) any later version. 9 10 This library is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 Library General Public License for more details. 14 15 You should have received a copy of the GNU Library General Public 16 License along with this library; if not, write to the Free 17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 19 Sam Lantinga 20 slouken (at) libsdl.org 21 */ 22 23 #ifdef SAVE_RCSID 24 static char rcsid = 25 "@(#) $Id: SDL_thread.h,v 1.7 2004/08/20 18:57:01 slouken Exp $"; 26 #endif 27 28 #ifndef _SDL_thread_h 29 #define _SDL_thread_h 30 31 /* Header for the SDL thread management routines 32 33 These are independent of the other SDL routines. 34 */ 35 36 #include "SDL_main.h" 37 #include "SDL_types.h" 38 39 /* Thread synchronization primitives */ 40 #include "SDL_mutex.h" 41 42 #include "begin_code.h" 43 /* Set up for C function definitions, even when using C++ */ 44 #ifdef __cplusplus 45 extern "C" { 46 #endif 47 48 /* The SDL thread structure, defined in SDL_thread.c */ 49 struct SDL_Thread; 50 typedef struct SDL_Thread SDL_Thread; 51 52 /* Create a thread */ 53 extern DECLSPEC SDL_Thread * SDLCALL SDL_CreateThread(int (SDLCALL *fn)(void *), void *data); 54 55 /* Get the 32-bit thread identifier for the current thread */ 56 extern DECLSPEC Uint32 SDLCALL SDL_ThreadID(void); 57 58 /* Get the 32-bit thread identifier for the specified thread, 59 equivalent to SDL_ThreadID() if the specified thread is NULL. 60 */ 61 extern DECLSPEC Uint32 SDLCALL SDL_GetThreadID(SDL_Thread *thread); 62 63 /* Wait for a thread to finish. 64 The return code for the thread function is placed in the area 65 pointed to by 'status', if 'status' is not NULL. 66 */ 67 extern DECLSPEC void SDLCALL SDL_WaitThread(SDL_Thread *thread, int *status); 68 69 /* Forcefully kill a thread without worrying about its state */ 70 extern DECLSPEC void SDLCALL SDL_KillThread(SDL_Thread *thread); 71 72 73 /* Ends C function definitions when using C++ */ 74 #ifdef __cplusplus 75 } 76 #endif 77 #include "close_code.h" 78 79 #endif /* _SDL_thread_h */ 80