aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt31
-rw-r--r--src/threading.h19
2 files changed, 6 insertions, 44 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 31883fa..c1973d7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -44,37 +44,6 @@ IF(UNIX AND NOT CYGWIN)
44 SET(LIBS pthread) 44 SET(LIBS pthread)
45ENDIF(UNIX AND NOT CYGWIN) 45ENDIF(UNIX AND NOT CYGWIN)
46 46
47IF(MINGW)
48#~ FIND_FILE(MSVCR80 NAMES msvcr80.dll msvcr90.dll)
49#~ SET(LIBS gcc ${MSVCR80})
50#~ IF(MSVC90)
51
52#~ from InstallRequiredSystemLibraries.cmake
53
54 IF(CMAKE_CL_64)
55 SET(CMAKE_MSVC_ARCH amd64)
56 ELSE(CMAKE_CL_64)
57 SET(CMAKE_MSVC_ARCH x86)
58 ENDIF(CMAKE_CL_64)
59
60 GET_FILENAME_COMPONENT(devenv_dir "${CMAKE_MAKE_PROGRAM}" PATH)
61 GET_FILENAME_COMPONENT(base_dir "${devenv_dir}/../.." ABSOLUTE)
62
63 # Find the runtime library redistribution directory.
64 FIND_PATH(MSVC90_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest
65 PATHS
66 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\9.0;InstallDir]/../../VC/redist"
67 "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VCExpress\\9.0;InstallDir]/../../VC/redist"
68 "${base_dir}/VC/redist"
69 )
70 SET(MSVC90_CRT_DIR "${MSVC90_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC90.CRT")
71 SET(LIBS gcc msvcr90 "${MSVC90_CRT_DIR}/msvcr90.dll")
72
73#~ ENDIF()
74
75ENDIF()
76
77
78 47
79 48
80TARGET_LINK_LIBRARIES(lua51-lanes ${LUA_LIBRARY} ${LIBS}) 49TARGET_LINK_LIBRARIES(lua51-lanes ${LUA_LIBRARY} ${LIBS})
diff --git a/src/threading.h b/src/threading.h
index 4a83229..2bf48e5 100644
--- a/src/threading.h
+++ b/src/threading.h
@@ -32,13 +32,6 @@ typedef int bool_t;
32 32
33typedef unsigned int uint_t; 33typedef unsigned int uint_t;
34 34
35#if defined(PLATFORM_WIN32) && defined(__GNUC__)
36/* MinGW with MSVCR80.DLL */
37/* Do this BEFORE including time.h so that it is declaring _mktime32()
38 * as it would have declared mktime().
39 */
40# define mktime _mktime32
41#endif
42#include <time.h> 35#include <time.h>
43 36
44/* Note: ERROR is a defined entity on Win32 37/* Note: ERROR is a defined entity on Win32
@@ -71,7 +64,7 @@ enum e_status { PENDING, RUNNING, WAITING, DONE, ERROR_ST, CANCELLED };
71 typedef unsigned THREAD_RETURN_T; 64 typedef unsigned THREAD_RETURN_T;
72 65
73 #define SIGNAL_T HANDLE 66 #define SIGNAL_T HANDLE
74 67
75 #define YIELD() Sleep(0) 68 #define YIELD() Sleep(0)
76#else 69#else
77 // PThread (Linux, OS X, ...) 70 // PThread (Linux, OS X, ...)
@@ -101,7 +94,7 @@ enum e_status { PENDING, RUNNING, WAITING, DONE, ERROR_ST, CANCELLED };
101 typedef pthread_cond_t SIGNAL_T; 94 typedef pthread_cond_t SIGNAL_T;
102 95
103 void SIGNAL_ONE( SIGNAL_T *ref ); 96 void SIGNAL_ONE( SIGNAL_T *ref );
104 97
105 // Yield is non-portable: 98 // Yield is non-portable:
106 // 99 //
107 // OS X 10.4.8/9 has pthread_yield_np() 100 // OS X 10.4.8/9 has pthread_yield_np()
@@ -143,7 +136,7 @@ bool_t SIGNAL_WAIT( SIGNAL_T *ref, MUTEX_T *mu, time_d timeout );
143 void THREAD_CREATE( THREAD_T *ref, 136 void THREAD_CREATE( THREAD_T *ref,
144 THREAD_RETURN_T (__stdcall *func)( void * ), 137 THREAD_RETURN_T (__stdcall *func)( void * ),
145 void *data, int prio /* -3..+3 */ ); 138 void *data, int prio /* -3..+3 */ );
146 139
147# define THREAD_PRIO_MIN (-3) 140# define THREAD_PRIO_MIN (-3)
148# define THREAD_PRIO_MAX (+3) 141# define THREAD_PRIO_MAX (+3)
149 142
@@ -162,10 +155,10 @@ bool_t SIGNAL_WAIT( SIGNAL_T *ref, MUTEX_T *mu, time_d timeout );
162 155
163 typedef pthread_t THREAD_T; 156 typedef pthread_t THREAD_T;
164 157
165 void THREAD_CREATE( THREAD_T *ref, 158 void THREAD_CREATE( THREAD_T *ref,
166 THREAD_RETURN_T (*func)( void * ), 159 THREAD_RETURN_T (*func)( void * ),
167 void *data, int prio /* -2..+2 */ ); 160 void *data, int prio /* -2..+2 */ );
168 161
169# if defined(PLATFORM_LINUX) 162# if defined(PLATFORM_LINUX)
170 volatile bool_t sudo; 163 volatile bool_t sudo;
171# ifdef LINUX_SCHED_RR 164# ifdef LINUX_SCHED_RR
@@ -180,7 +173,7 @@ bool_t SIGNAL_WAIT( SIGNAL_T *ref, MUTEX_T *mu, time_d timeout );
180# endif 173# endif
181#endif 174#endif
182 175
183/* 176/*
184* Win32 and PTHREAD_TIMEDJOIN allow waiting for a thread with a timeout. 177* Win32 and PTHREAD_TIMEDJOIN allow waiting for a thread with a timeout.
185* Posix without PTHREAD_TIMEDJOIN needs to use a condition variable approach. 178* Posix without PTHREAD_TIMEDJOIN needs to use a condition variable approach.
186*/ 179*/