diff options
Diffstat (limited to 'boost/fiber/future/detail/task_object.hpp')
-rw-r--r-- | boost/fiber/future/detail/task_object.hpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/boost/fiber/future/detail/task_object.hpp b/boost/fiber/future/detail/task_object.hpp index e879f8169e..47bbf3cc39 100644 --- a/boost/fiber/future/detail/task_object.hpp +++ b/boost/fiber/future/detail/task_object.hpp @@ -13,6 +13,7 @@ #include <utility> #include <boost/config.hpp> +#include <boost/context/detail/config.hpp> #if defined(BOOST_NO_CXX17_STD_APPLY) #include <boost/context/detail/apply.hpp> #endif @@ -63,6 +64,10 @@ public: fn_, std::make_tuple( std::forward< Args >( args) ... ) ) #endif ); +#if defined(BOOST_CONTEXT_HAS_CXXABI_H) + } catch ( abi::__forced_unwind const&) { + throw; +#endif } catch (...) { this->set_exception( std::current_exception() ); } @@ -133,6 +138,10 @@ public: fn_, std::make_tuple( std::forward< Args >( args) ... ) ); #endif this->set_value(); +#if defined(BOOST_CONTEXT_HAS_CXXABI_H) + } catch ( abi::__forced_unwind const&) { + throw; +#endif } catch (...) { this->set_exception( std::current_exception() ); } |