diff --git a/src/once.cpp b/src/once.cpp index 4332f49a..4c881e6a 100644 --- a/src/once.cpp +++ b/src/once.cpp @@ -113,7 +113,14 @@ inline LONG ice_wrapper(LPVOID (__stdcall *ice)(LPVOID*, LPVOID, LPVOID), // according to the above function type wrappers. inline LONG compare_exchange(volatile LPLONG dest, LONG exch, LONG cmp) { +#ifdef _WIN64 + // Original patch from Anthony Williams. + // I (Roland Schwarz) am trying this for RC_1_34_0, since x64 regressions are + // currently not run on x64 platforms for HEAD + return InterlockedCompareExchange(dest, exch,cmp); +#else return ice_wrapper(&InterlockedCompareExchange, dest, exch, cmp); +#endif } } #endif