Ticket #2100: boost_thread_lib_src.diff

File boost_thread_lib_src.diff, 1.2 KB (added by nigels@…, 13 years ago)

libs/pthread/src/thread.cpp patch for BOOST_NO_EXCEPTIONS

  • pthread/thread.cpp

     
    116116                boost::detail::thread_data_ptr thread_info = static_cast<boost::detail::thread_data_base*>(param)->self;
    117117                thread_info->self.reset();
    118118                detail::set_current_thread_data(thread_info.get());
     119#ifdef BOOST_NO_EXCEPTIONS
     120                thread_info->run();
     121#else
    119122                try
    120123                {
    121124                    thread_info->run();
     
    129132//                 {
    130133//                     std::terminate();
    131134//                 }
     135#endif
    132136
    133137                detail::tls_destructor(thread_info.get());
    134138                detail::set_current_thread_data(0);
     
    462466
    463467        void interruption_point()
    464468        {
     469#ifndef BOOST_NO_EXCEPTIONS
    465470            boost::detail::thread_data_base* const thread_info=detail::get_current_thread_data();
    466471            if(thread_info && thread_info->interrupt_enabled)
    467472            {
     
    472477                    throw thread_interrupted();
    473478                }
    474479            }
     480#endif
    475481        }
    476482       
    477483        bool interruption_enabled()