summaryrefslogtreecommitdiff
path: root/boost/coroutine/detail/pull_coroutine_object.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/coroutine/detail/pull_coroutine_object.hpp')
-rw-r--r--boost/coroutine/detail/pull_coroutine_object.hpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/boost/coroutine/detail/pull_coroutine_object.hpp b/boost/coroutine/detail/pull_coroutine_object.hpp
index 36918489de..c4bb2c45b7 100644
--- a/boost/coroutine/detail/pull_coroutine_object.hpp
+++ b/boost/coroutine/detail/pull_coroutine_object.hpp
@@ -9,6 +9,7 @@
#include <boost/assert.hpp>
#include <boost/config.hpp>
+#include <boost/context/detail/config.hpp>
#include <boost/cstdint.hpp>
#include <boost/exception_ptr.hpp>
#include <boost/move/move.hpp>
@@ -115,6 +116,10 @@ public:
{ fn_( push_coro); }
catch ( forced_unwind const&)
{}
+#if defined( BOOST_CONTEXT_HAS_CXXABI_H )
+ catch ( abi::__forced_unwind const&)
+ { throw; }
+#endif
catch (...)
{ base_t::except_ = current_exception(); }
@@ -198,6 +203,10 @@ public:
{ fn_( push_coro); }
catch ( forced_unwind const&)
{}
+#if defined( BOOST_CONTEXT_HAS_CXXABI_H )
+ catch ( abi::__forced_unwind const&)
+ { throw; }
+#endif
catch (...)
{ base_t::except_ = current_exception(); }
@@ -281,6 +290,10 @@ public:
{ fn_( push_coro); }
catch ( forced_unwind const&)
{}
+#if defined( BOOST_CONTEXT_HAS_CXXABI_H )
+ catch ( abi::__forced_unwind const&)
+ { throw; }
+#endif
catch (...)
{ base_t::except_ = current_exception(); }