
David Deakins wrote:
Attached are some Windows CE patches for the thread rewrite code:
- boost\thread\win32\thread_primitives.hpp: - boost\thread\win32\thread_heap_alloc.hpp: - libs\thread\src\win32\thread.cpp: - libs\thread\src\win32\tss.cpp: - libs\thread\src\win32\tss_hooks.cpp: - libs\thread\src\tss_null.cpp: - libs\thread\src\win32\tss_pe.cpp:
Oops, there is also a patch to boost\detail\interlocked.hpp: The WinCE section in this file omits definitions for BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER and BOOST_INTERLOCKED_EXCHANGE_POINTER. Thanks, -Dave Index: interlocked.hpp =================================================================== --- interlocked.hpp (revision 40132) +++ interlocked.hpp (working copy) @@ -47,6 +47,11 @@ # define BOOST_INTERLOCKED_EXCHANGE InterlockedExchange # define BOOST_INTERLOCKED_EXCHANGE_ADD InterlockedExchangeAdd +# define BOOST_INTERLOCKED_COMPARE_EXCHANGE_POINTER(dest,exchange,compare) \ + ((void*)BOOST_INTERLOCKED_COMPARE_EXCHANGE((long*)(dest),(long)(exchange),(long)(compare))) +# define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \ + ((void*)BOOST_INTERLOCKED_EXCHANGE((long*)(dest),(long)(exchange))) + #elif defined( BOOST_MSVC ) || defined( BOOST_INTEL_WIN ) extern "C" long __cdecl _InterlockedIncrement( long volatile * );