Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  1. /*
  2.     SDL - Simple DirectMedia Layer
  3.     Copyright (C) 1997, 1998, 1999, 2000, 2001  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@devolution.com
  21. */
  22.  
  23. #ifdef SAVE_RCSID
  24. static char rcsid =
  25.  "@(#) $Id: SDL_thread.h,v 1.2 2001/04/26 16:50:17 hercules 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 * SDL_CreateThread(int (*fn)(void *), void *data);
  54.  
  55. /* Get the 32-bit thread identifier for the current thread */
  56. extern DECLSPEC Uint32 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 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 SDL_WaitThread(SDL_Thread *thread, int *status);
  68.  
  69. /* Forcefully kill a thread without worrying about its state */
  70. extern DECLSPEC void 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.