diff options
Diffstat (limited to 'boost/coroutine/detail/pull_coroutine_object.hpp')
-rw-r--r-- | boost/coroutine/detail/pull_coroutine_object.hpp | 13 |
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(); } |