Subject: [Boost-bugs] [Boost C++ Libraries] #8336: fusion sequence io manipulators are thread un-safe
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2013-03-26 16:46:25
#8336: fusion sequence io manipulators are thread un-safe
-------------------------------------------------------+--------------------
Reporter: jeffrey.flinn@⦠| Owner: djowel
Type: Bugs | Status: new
Milestone: To Be Determined | Component: fusion
Version: Boost 1.54.0 | Severity: Problem
Keywords: fusion, sequence, io, manipulator, thread |
-------------------------------------------------------+--------------------
boost::detail::stream_data::attach uses a std::vector to store instances
of data associated with the tuple_open, tuple_close, tuple_delimiter io
manipulators. When streaming unrelated fusion sets to unrelated
ostringstreams from different threads fails MSVC's debug iterator checks
leading to an assert.
Additionally the stored data items once constructed remain in memory until
program exit.
The attached patch removes the static vector instance, allowing the stream
to properly manage the manipulator data lifetime by using
std::ios_base::register_callback.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/8336> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:12 UTC