Ticket #2100: boost_thread_BOOST_NO_EXCEPTIONS_20110306.diff

File boost_thread_BOOST_NO_EXCEPTIONS_20110306.diff, 3.1 KB (added by nstewart@…, 12 years ago)

Updated boost thread patch w.r.t trunk revision 69610

  • pthread/thread_data.hpp

     
    8383
    8484            void check_for_interruption()
    8585            {
     86#ifndef BOOST_NO_EXCEPTIONS
    8687                if(thread_info->interrupt_requested)
    8788                {
    8889                    thread_info->interrupt_requested=false;
    8990                    throw thread_interrupted();
    9091                }
     92#endif
    9193            }
    9294           
    9395            void operator=(interruption_checker&);
  • win32/thread_heap_alloc.hpp

     
    7575        inline T* heap_new()
    7676        {
    7777            void* const heap_memory=allocate_raw_heap_memory(sizeof(T));
     78#ifndef BOOST_NO_EXCEPTIONS
    7879            try
     80#endif
    7981            {
    8082                T* const data=new (heap_memory) T();
    8183                return data;
    8284            }
     85#ifndef BOOST_NO_EXCEPTIONS
    8386            catch(...)
    8487            {
    8588                free_raw_heap_memory(heap_memory);
    8689                throw;
    8790            }
     91#endif
    8892        }
    8993
    9094#ifndef BOOST_NO_RVALUE_REFERENCES
     
    171175        inline T* heap_new_impl(A1 a1,A2 a2)
    172176        {
    173177            void* const heap_memory=allocate_raw_heap_memory(sizeof(T));
     178#ifndef BOOST_NO_EXCEPTIONS
    174179            try
     180#endif
    175181            {
    176182                T* const data=new (heap_memory) T(a1,a2);
    177183                return data;
    178184            }
     185#ifndef BOOST_NO_EXCEPTIONS
    179186            catch(...)
    180187            {
    181188                free_raw_heap_memory(heap_memory);
    182189                throw;
    183190            }
     191#endif
    184192        }
    185193
    186194        template<typename T,typename A1,typename A2,typename A3>
     
    203211        inline T* heap_new_impl(A1 a1,A2 a2,A3 a3,A4 a4)
    204212        {
    205213            void* const heap_memory=allocate_raw_heap_memory(sizeof(T));
     214#ifndef BOOST_NO_EXCEPTIONS
    206215            try
     216#endif
    207217            {
    208218                T* const data=new (heap_memory) T(a1,a2,a3,a4);
    209219                return data;
    210220            }
     221#ifndef BOOST_NO_EXCEPTIONS
    211222            catch(...)
    212223            {
    213224                free_raw_heap_memory(heap_memory);
    214225                throw;
    215226            }
     227#endif
    216228        }
    217229
    218230
  • win32/once.hpp

     
    136136            status=BOOST_INTERLOCKED_COMPARE_EXCHANGE(&flag.status,running_value,0);
    137137            if(!status)
    138138            {
     139#ifndef BOOST_NO_EXCEPTIONS
    139140                try
     141#endif
    140142                {
    141143                    if(!event_handle)
    142144                    {
     
    164166                    }
    165167                    break;
    166168                }
     169#ifndef BOOST_NO_EXCEPTIONS
    167170                catch(...)
    168171                {
    169172                    BOOST_INTERLOCKED_EXCHANGE(&flag.status,0);
     
    177180                    }
    178181                    throw;
    179182                }
     183#endif
    180184            }
    181185
    182186            if(!counted)