Mercurial > sdl-ios-xcode
comparison include/SDL_thread.h @ 3269:a67a961e2171
Removed outdated OS/2 support
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Sat, 19 Sep 2009 06:43:45 +0000 |
parents | 99210400e8b9 |
children | d3baf5ac4e37 |
comparison
equal
deleted
inserted
replaced
3268:82ce350be859 | 3269:a67a961e2171 |
---|---|
46 /* The SDL thread structure, defined in SDL_thread.c */ | 46 /* The SDL thread structure, defined in SDL_thread.c */ |
47 struct SDL_Thread; | 47 struct SDL_Thread; |
48 typedef struct SDL_Thread SDL_Thread; | 48 typedef struct SDL_Thread SDL_Thread; |
49 | 49 |
50 /* Create a thread */ | 50 /* Create a thread */ |
51 #if (defined(__WIN32__) && !defined(HAVE_LIBC)) || defined(__OS2__) | 51 #if defined(__WIN32__) && !defined(HAVE_LIBC) |
52 /* | 52 /* |
53 We compile SDL into a DLL on OS/2. This means, that it's the DLL which | 53 We compile SDL into a DLL. This means, that it's the DLL which |
54 creates a new thread for the calling process with the SDL_CreateThread() | 54 creates a new thread for the calling process with the SDL_CreateThread() |
55 API. There is a problem with this, that only the RTL of the SDL.DLL will | 55 API. There is a problem with this, that only the RTL of the SDL.DLL will |
56 be initialized for those threads, and not the RTL of the calling application! | 56 be initialized for those threads, and not the RTL of the calling application! |
57 To solve this, we make a little hack here. | 57 To solve this, we make a little hack here. |
58 We'll always use the caller's _beginthread() and _endthread() APIs to | 58 We'll always use the caller's _beginthread() and _endthread() APIs to |
65 #define SDL_PASSED_BEGINTHREAD_ENDTHREAD | 65 #define SDL_PASSED_BEGINTHREAD_ENDTHREAD |
66 #ifndef _WIN32_WCE | 66 #ifndef _WIN32_WCE |
67 #include <process.h> /* This has _beginthread() and _endthread() defined! */ | 67 #include <process.h> /* This has _beginthread() and _endthread() defined! */ |
68 #endif | 68 #endif |
69 | 69 |
70 #ifdef __OS2__ | 70 #ifdef __GNUC__ |
71 typedef int (*pfnSDL_CurrentBeginThread) (void (*func) (void *), void *, | |
72 unsigned, void *arg); | |
73 typedef void (*pfnSDL_CurrentEndThread) (void); | |
74 #elif __GNUC__ | |
75 typedef unsigned long (__cdecl * pfnSDL_CurrentBeginThread) (void *, unsigned, | 71 typedef unsigned long (__cdecl * pfnSDL_CurrentBeginThread) (void *, unsigned, |
76 unsigned | 72 unsigned |
77 (__stdcall * | 73 (__stdcall * |
78 func) (void *), | 74 func) (void *), |
79 void *arg, | 75 void *arg, |
94 extern DECLSPEC SDL_Thread *SDLCALL | 90 extern DECLSPEC SDL_Thread *SDLCALL |
95 SDL_CreateThread(int (SDLCALL * f) (void *), void *data, | 91 SDL_CreateThread(int (SDLCALL * f) (void *), void *data, |
96 pfnSDL_CurrentBeginThread pfnBeginThread, | 92 pfnSDL_CurrentBeginThread pfnBeginThread, |
97 pfnSDL_CurrentEndThread pfnEndThread); | 93 pfnSDL_CurrentEndThread pfnEndThread); |
98 | 94 |
99 #ifdef __OS2__ | 95 #if defined(_WIN32_WCE) |
100 #define SDL_CreateThread(fn, data) SDL_CreateThread(fn, data, _beginthread, _endthread) | |
101 #elif defined(_WIN32_WCE) | |
102 #define SDL_CreateThread(fn, data) SDL_CreateThread(fn, data, NULL, NULL) | 96 #define SDL_CreateThread(fn, data) SDL_CreateThread(fn, data, NULL, NULL) |
103 #else | 97 #else |
104 #define SDL_CreateThread(fn, data) SDL_CreateThread(fn, data, _beginthreadex, _endthreadex) | 98 #define SDL_CreateThread(fn, data) SDL_CreateThread(fn, data, _beginthreadex, _endthreadex) |
105 #endif | 99 #endif |
106 #else | 100 #else |