[Boost-bugs] [Boost C++ Libraries] #8336: fusion sequence io manipulators are thread un-safe

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