Index: pthread/thread_data.hpp =================================================================== --- pthread/thread_data.hpp (revision 69610) +++ pthread/thread_data.hpp (working copy) @@ -83,11 +83,13 @@ void check_for_interruption() { +#ifndef BOOST_NO_EXCEPTIONS if(thread_info->interrupt_requested) { thread_info->interrupt_requested=false; throw thread_interrupted(); } +#endif } void operator=(interruption_checker&); Index: win32/thread_heap_alloc.hpp =================================================================== --- win32/thread_heap_alloc.hpp (revision 69610) +++ win32/thread_heap_alloc.hpp (working copy) @@ -75,16 +75,20 @@ inline T* heap_new() { void* const heap_memory=allocate_raw_heap_memory(sizeof(T)); +#ifndef BOOST_NO_EXCEPTIONS try +#endif { T* const data=new (heap_memory) T(); return data; } +#ifndef BOOST_NO_EXCEPTIONS catch(...) { free_raw_heap_memory(heap_memory); throw; } +#endif } #ifndef BOOST_NO_RVALUE_REFERENCES @@ -171,16 +175,20 @@ inline T* heap_new_impl(A1 a1,A2 a2) { void* const heap_memory=allocate_raw_heap_memory(sizeof(T)); +#ifndef BOOST_NO_EXCEPTIONS try +#endif { T* const data=new (heap_memory) T(a1,a2); return data; } +#ifndef BOOST_NO_EXCEPTIONS catch(...) { free_raw_heap_memory(heap_memory); throw; } +#endif } template @@ -203,16 +211,20 @@ inline T* heap_new_impl(A1 a1,A2 a2,A3 a3,A4 a4) { void* const heap_memory=allocate_raw_heap_memory(sizeof(T)); +#ifndef BOOST_NO_EXCEPTIONS try +#endif { T* const data=new (heap_memory) T(a1,a2,a3,a4); return data; } +#ifndef BOOST_NO_EXCEPTIONS catch(...) { free_raw_heap_memory(heap_memory); throw; } +#endif } Index: win32/once.hpp =================================================================== --- win32/once.hpp (revision 69610) +++ win32/once.hpp (working copy) @@ -136,7 +136,9 @@ status=BOOST_INTERLOCKED_COMPARE_EXCHANGE(&flag.status,running_value,0); if(!status) { +#ifndef BOOST_NO_EXCEPTIONS try +#endif { if(!event_handle) { @@ -164,6 +166,7 @@ } break; } +#ifndef BOOST_NO_EXCEPTIONS catch(...) { BOOST_INTERLOCKED_EXCHANGE(&flag.status,0); @@ -177,6 +180,7 @@ } throw; } +#endif } if(!counted)