diff options
Diffstat (limited to 'implement.h')
-rw-r--r-- | implement.h | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/implement.h b/implement.h index 82a7a8f..cf3c7f4 100644 --- a/implement.h +++ b/implement.h @@ -566,6 +566,7 @@ extern "C" int ptw32_cond_check_need_init (pthread_cond_t * cond); int ptw32_mutex_check_need_init (pthread_mutex_t * mutex); int ptw32_rwlock_check_need_init (pthread_rwlock_t * rwlock); + int ptw32_spinlock_check_need_init (pthread_spinlock_t * spinlock); PTW32_INTERLOCKED_LONG WINAPI ptw32_InterlockedCompareExchange (PTW32_INTERLOCKED_LPLONG location, @@ -658,7 +659,9 @@ extern "C" # endif # endif #else -# include <process.h> +# ifndef WINCE +# include <process.h> +# endif #endif @@ -667,11 +670,21 @@ extern "C" * See ptw32_InterlockedCompareExchange.c */ #ifndef PTW32_INTERLOCKED_COMPARE_EXCHANGE -#ifdef _WIN64 -#define PTW32_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange -#else -#define PTW32_INTERLOCKED_COMPARE_EXCHANGE ptw32_interlocked_compare_exchange -#endif +# ifdef _WIN64 + /* + * InterlockedCompareExchange is an intrinsic function in Win64. + */ +# define PTW32_INTERLOCKED_COMPARE_EXCHANGE _InterlockedCompareExchange +# else + /* + * The routine pthread_win32_process_attach_np() in pthread_win32_attach_detach_np.c + * checks at runtime that InterlockedCompareExchange is supported within + * KERNEL32.DLL (or COREDLL.DLL for WinCE). This allows the same + * dll to run on all Win32 versions from Win95 onwards. Not sure if this + * is required for WinCE, but should work just the same anyway. + */ +# define PTW32_INTERLOCKED_COMPARE_EXCHANGE ptw32_interlocked_compare_exchange +# endif #endif #ifndef PTW32_INTERLOCKED_EXCHANGE |