diff options
-rw-r--r-- | CMakeLists.txt | 31 | ||||
-rw-r--r-- | src/threading.h | 19 |
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) |
45 | ENDIF(UNIX AND NOT CYGWIN) | 45 | ENDIF(UNIX AND NOT CYGWIN) |
46 | 46 | ||
47 | IF(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 | |||
75 | ENDIF() | ||
76 | |||
77 | |||
78 | 47 | ||
79 | 48 | ||
80 | TARGET_LINK_LIBRARIES(lua51-lanes ${LUA_LIBRARY} ${LIBS}) | 49 | TARGET_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 | ||
33 | typedef unsigned int uint_t; | 33 | typedef 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 | */ |