Ticket #4480: thread.patch

File thread.patch, 2.3 KB (added by artyomtnk@…, 12 years ago)
  • boost/thread/future.hpp

    diff -rupN boost_1_43_0/boost/thread/future.hpp boost_vms_1_43_0/boost/thread/future.hpp
    old new namespace boost  
    413413                {
    414414                    for(count_type i=0;i<count;++i)
    415415                    {
    416                         locks[i]=boost::unique_lock<boost::mutex>(futures[i].future->mutex);
     416                        locks[i]=boost::unique_lock<boost::mutex>(futures[i].future->mutex).move();
    417417                    }
    418418                }
    419419               
  • boost/thread/pthread/thread_data.hpp

    diff -rupN boost_1_43_0/boost/thread/pthread/thread_data.hpp boost_vms_1_43_0/boost/thread/pthread/thread_data.hpp
    old new namespace boost  
    114114    {
    115115        void BOOST_THREAD_DECL yield();
    116116       
     117        #ifdef __DECCXX
     118        template<typename TimeDuration>
     119        inline void sleep(TimeDuration const& rel_time)
     120        {
     121            this_thread::sleep(get_system_time()+rel_time);
     122        }
     123
     124        /// Workaround of DECCXX issue of incorrect template substitution
     125        template<>
     126        void BOOST_THREAD_DECL sleep(system_time const& abs_time);
     127       
     128        #else
    117129        void BOOST_THREAD_DECL sleep(system_time const& abs_time);
    118130       
    119131        template<typename TimeDuration>
    namespace boost  
    121133        {
    122134            this_thread::sleep(get_system_time()+rel_time);
    123135        }
     136        #endif
    124137    }
    125138}
    126139
  • libs/thread/src/pthread/thread.cpp

    diff -rupN boost_1_43_0/libs/thread/src/pthread/thread.cpp boost_vms_1_43_0/libs/thread/src/pthread/thread.cpp
    old new namespace boost  
    322322
    323323    namespace this_thread
    324324    {
    325        
     325        #ifdef __DECXXX
     326        /// Workaround of DECCXX issue of incorrect template substitution
     327        template<>
     328        #endif
    326329        void sleep(const system_time& st)
    327330        {
    328331            detail::thread_data_base* const thread_info=detail::get_current_thread_data();