This commit is contained in:
jzmaddock
2013-12-18 18:15:41 +00:00
parent b9b3966fd2
commit 0983ff065e
3 changed files with 12 additions and 8 deletions

View File

@ -25,6 +25,7 @@ this gets bumped up from v4 to v5.
* Fixed documentation typos from [@https://svn.boost.org/trac/boost/ticket/9283 #9283].
* Fixed bug in collation code that failed if the locale generated collation strings with embedded nul's,
see [@https://svn.boost.org/trac/boost/ticket/9451 #9451].
* Apply patch for unusual thread usage (no statically initiallized mutexes), see [@https://svn.boost.org/trac/boost/ticket/9461 #9461].
[h4 Boost-1.54]

View File

@ -125,12 +125,15 @@ private:
// Since this preprocessor path is almost never taken, we hide these header
// dependencies so that build tools don't find them.
//
#define B1 <boost/thread/once.hpp>
#define B2 <boost/thread/recursive_mutex.hpp>
#include B1
#include B2
#undef B1
#undef B2
#define BOOST_REGEX_H1 <boost/thread/once.hpp>
#define BOOST_REGEX_H2 <boost/thread/recursive_mutex.hpp>
#define BOOST_REGEX_H3 <boost/thread/lock_types.hpp>
#include BOOST_REGEX_H1
#include BOOST_REGEX_H2
#include BOOST_REGEX_H3
#undef BOOST_REGEX_H1
#undef BOOST_REGEX_H2
#undef BOOST_REGEX_H3
namespace boost{
@ -158,7 +161,7 @@ public:
void lock();
void unlock();
private:
boost::recursive_mutex::scoped_lock* m_plock;
boost::unique_lock<boost::recursive_mutex>* m_plock;
bool m_have_lock;
};

View File

@ -161,7 +161,7 @@ void scoped_static_mutex_lock::lock()
{
boost::call_once(static_mutex::m_once,&static_mutex::init);
if(0 == m_plock)
m_plock = new boost::recursive_mutex::scoped_lock(*static_mutex::m_pmutex, boost::defer_lock);
m_plock = new boost::unique_lock<boost::recursive_mutex>(*static_mutex::m_pmutex, boost::defer_lock);
m_plock->lock();
m_have_lock = true;
}