Opened 14 years ago
Closed 14 years ago
#2675 closed Bugs (fixed)
Win32 threading selection in boost/detail/lightweight_mutex.hpp
Reported by: | Joaquín M López Muñoz | Owned by: | Peter Dimov |
---|---|---|---|
Milestone: | Boost 1.39.0 | Component: | smart_ptr |
Version: | Boost 1.37.0 | Severity: | Problem |
Keywords: | Cc: |
Description
(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 <boost/detail/lwm_nop.hpp> #elif defined(BOOST_HAS_PTHREADS) # include <boost/detail/lwm_pthreads.hpp> #elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) # include <boost/detail/lwm_win32_cs.hpp> #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 <windows.h> 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 <boost/detail/lwm_win32_cs.hpp> #else
Change History (3)
comment:1 by , 14 years ago
Milestone: | Boost 1.38.0 → Boost 1.39.0 |
---|---|
Status: | new → assigned |
comment:2 by , 14 years ago
comment:3 by , 14 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
(In [51515]) Refs #2675 (fixed in trunk.)