summaryrefslogtreecommitdiff
path: root/boost/fiber/future/detail/task_object.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/fiber/future/detail/task_object.hpp')
-rw-r--r--boost/fiber/future/detail/task_object.hpp9
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() );
}