You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am not sure whether this is a boost::asio or boost::coroutine bug but I thought I'd start here as it doesn't really seem related to any asio code. Happy to report it to boost::asio though!
before
done
excep handler
before
bastelbox: /usr/include/boost/coroutine/detail/push_coroutine_impl.hpp:252: void boost::coroutines::detail::push_coroutine_impl::unwind_stack(): Assertion `is_complete()' failed.
Aborted (core dumped)
It seems like when the coroutine handler gets destroyed (once the io_context gets destroyed) execution is resumed in the catch all exception handler. Using a non-catch all handler like only catching std::exception results in normal behaviour (only before and done is printed).
Hello,
I am not sure whether this is a
boost::asio
orboost::coroutine
bug but I thought I'd start here as it doesn't really seem related to any asio code. Happy to report it toboost::asio
though!the following code:
gives the following output:
It seems like when the coroutine handler gets destroyed (once the
io_context
gets destroyed) execution is resumed in the catch all exception handler. Using a non-catch all handler like only catchingstd::exception
results in normal behaviour (onlybefore
anddone
is printed).I am testing this with g++ 8 and boost 1.69. I can reproduce it in both
-O0
and-O2
. Enabling ASAN also results in a stack-buffer-underflow warning: https://gist.github.com/StephanDollberg/a1ab914d806d3aa4406c5cf840dd2e00Thanks,
Stephan
The text was updated successfully, but these errors were encountered: