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