id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 2675,Win32 threading selection in boost/detail/lightweight_mutex.hpp,Joaquín M López Muñoz,Peter Dimov,"(See discussion at http://lists.boost.org/Archives/boost/2008/12/146172.php) Lines 31-40 of boost/detail/lightweight_mutex.hpp read like this: {{{ #if !defined(BOOST_HAS_THREADS) # include #elif defined(BOOST_HAS_PTHREADS) # include #elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) # include #else // Use #define BOOST_DISABLE_THREADS to avoid the error # error Unrecognized threading platform #endif }}} The conditions for selecting boost/detail/lwm_win32_cs.hpp are suboptimal because they're ruling out the case where the user's disabled Pthreads in cygwin/mingw by explicitly defining BOOST_HAS_WINTHREADS,a case covered by boost/config/platform/cygwin.hpp: in such a situation, Win32 threading is available but none of WIN32 and similar are defined by default (unless has been previously included, which makes boost/detail/lightweight_mutex.hpp context dependent). As per the discussion carried out in the list, I think the best resolution is to have the Win32 selection pp code changed to {{{ #elif defined(BOOST_HAS_WINTHREADS) ||\ defined(WIN32) || defined(_WIN32) || defined(__WIN32__) # include #else }}}",Bugs,closed,Boost 1.39.0,smart_ptr,Boost 1.37.0,Problem,fixed,,