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
In this example I pass some shared_ptr's through the channel and put it in an array to extend it's lifetime. But counter decrements twice and objects gets destroyed.
I made a little investigation and think that 37b5f77 (#209) should be reverted because e440623 (#258) already covers all situations where deletion is required.
I'm suffering the same issue, so double free corruption is occuring. (my current boost version is 1.80)
Even boost::fibers::buffered_channel<std::string> does not work at all, which used to work well in previous versions. (maybe <=1.70)
I think there must be some test cases for T = std::string or T = std::shared_ptr<X> in test_buffered_channel_post.cpp file...
version: 1.75.0 (probably 1.78.0)
compiler: gcc 9.4.0
Hi, I have found some unexpected behavior when using
buffered_channel::iterator
. The destructor is called twice when using them.This happens first time when
operator++
is called and second time inincrement()
fiber/include/boost/fiber/buffered_channel.hpp
Lines 357 to 361 in 8d0fe60
fiber/include/boost/fiber/buffered_channel.hpp
Lines 310 to 320 in 8d0fe60
Got this on version 1.75.0 but it seems that it is still present.
Minimal reproducible example:
In this example I pass some shared_ptr's through the channel and put it in an array to extend it's lifetime. But counter decrements twice and objects gets destroyed.
Expected result:
Actual result:
The text was updated successfully, but these errors were encountered: