Ticket #9457: spirit.patch

File spirit.patch, 5.0 KB (added by myasnikovmaksim@…, 7 years ago)
  • boost/spirit/home/classic/core/non_terminal/impl/grammar.ipp

     
    2323#include <boost/spirit/home/classic/core/non_terminal/impl/static.hpp>
    2424#include <boost/thread/tss.hpp>
    2525#include <boost/thread/mutex.hpp>
     26#include <boost/thread/lock_types.hpp>
    2627#endif
    2728
    2829///////////////////////////////////////////////////////////////////////////////
     
    159160                result(new definition_t(target_grammar->derived()));
    160161
    161162#ifdef BOOST_SPIRIT_THREADSAFE
    162             boost::mutex::scoped_lock lock(helpers.mutex());
     163            boost::unique_lock<boost::mutex> lock(helpers.mutex());
    163164#endif
    164165            helpers.push_back(this);
    165166
  • boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp

     
    1515
    1616#ifdef BOOST_SPIRIT_THREADSAFE
    1717#include <boost/thread/mutex.hpp>
     18#include <boost/thread/lock_types.hpp>
    1819#include <boost/thread/once.hpp>
    1920#endif
    2021
     
    99100        object_with_id_base_supply<IdT>::acquire()
    100101        {
    101102#ifdef BOOST_SPIRIT_THREADSAFE
    102             boost::mutex::scoped_lock lock(mutex);
     103            boost::unique_lock<boost::mutex> lock(mutex);
    103104#endif
    104105            if (free_ids.size())
    105106            {
     
    121122        object_with_id_base_supply<IdT>::release(IdT id)
    122123        {
    123124#ifdef BOOST_SPIRIT_THREADSAFE
    124             boost::mutex::scoped_lock lock(mutex);
     125            boost::unique_lock<boost::mutex> lock(mutex);
    125126#endif
    126127            if (max_id == id)
    127128                max_id--;
     
    139140                static boost::once_flag been_here = BOOST_ONCE_INIT;
    140141                boost::call_once(been_here, mutex_init);
    141142                boost::mutex &mutex = mutex_instance();
    142                 boost::mutex::scoped_lock lock(mutex);
     143                boost::unique_lock<boost::mutex> lock(mutex);
    143144#endif
    144145                static boost::shared_ptr<object_with_id_base_supply<IdT> >
    145146                    static_supply;
  • boost/spirit/home/classic/utility/scoped_lock.hpp

     
    1010
    1111///////////////////////////////////////////////////////////////////////////////
    1212#include <boost/spirit/home/classic/namespace.hpp>
     13#include <boost/thread/lock_types.hpp>
    1314#if !defined(BOOST_SPIRIT_COMPOSITE_HPP)
    1415#include <boost/spirit/home/classic/core/composite.hpp>
    1516#endif
     
    5152        typename parser_result<self_t, ScannerT>::type
    5253        parse(ScannerT const &scan) const
    5354        {
    54             typedef typename  mutex_t::scoped_lock scoped_lock_t;
     55            typedef boost::unique_lock<mutex_t> scoped_lock_t;
    5556            scoped_lock_t lock(mutex);
    5657            return this->subject().parse(scan);
    5758        }
  • libs/spirit/classic/test/grammar_mt_tests.cpp

     
    3535#include <boost/spirit/include/classic_rule.hpp>
    3636#include <boost/spirit/include/classic_epsilon.hpp>
    3737#include <boost/thread/xtime.hpp>
     38#include <boost/thread/mutex.hpp>
     39#include <boost/thread/lock_types.hpp>
    3840#include <boost/ref.hpp>
    3941
    4042static boost::mutex simple_mutex;
     
    4850        definition(simple const& /*self*/)
    4951        {
    5052            top = BOOST_SPIRIT_CLASSIC_NS::epsilon_p;
    51             boost::mutex::scoped_lock lock(simple_mutex);
     53            boost::unique_lock<boost::mutex> lock(simple_mutex);
    5254            simple_definition_count++;
    5355        }
    5456
  • libs/spirit/classic/test/owi_mt_tests.cpp

     
    4646#include <boost/spirit/home/classic/core/non_terminal/impl/object_with_id.ipp>
    4747#include <boost/ref.hpp>
    4848#include <boost/thread/xtime.hpp>
     49#include <boost/thread/mutex.hpp>
     50#include <boost/thread/lock_types.hpp>
    4951#include <vector>
    5052#include <algorithm>
    5153#include <boost/detail/lightweight_test.hpp>
     
    8082    increase_test_size(unsigned long size)
    8183    {
    8284        static boost::mutex  m;
    83         boost::mutex::scoped_lock l(m);
     85        boost::unique_lock<boost::mutex> l(m);
    8486
    8587        if (size<test_size || test_size == maximum_test_size)
    8688            return test_size;