From: Peter Dimov (pdimov_at_[hidden])
Date: 2007-09-07 08:53:00


Joaquín Mª López Muñoz:

> boost/detail/flyweight_mutex.hpp implements a mutex class based on a
> Win32 CRITICAL_SECTION or using Pthreads according to the
> following pp logic:
>
> #if defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
> // based on CRITICAL_SECTION
> #elif defined(BOOST_HAS_PTHREADS)
> // based on Pthreads
>
> The problem with this is that WIN32 and related macros are not predefined
> in some environments (Cygwin at least) but rather they are defined inside
> windows.h, thus making the logic above dependent on the inclusion context.

Would it help if we reverse the two tests?