The fix for this has been in a development-only branch (specifically
the thread_dev branch) in CVS for quite some time, but was never moved
into the main branch because the Boost.Thread maintainer stopped
working on the library before moving it. I'm in the process of
examining and moving the changes he made into the release branch now,
and this fix, as well as some other tss improvements, is next on the
list. In fact, I posted a request for comments to the boost.devel
newsgroup several days ago, and will likely move the changes in a few
more days if there are no objections.
What this translates into is that the fix will be in the next Boost
release. I'm sorry it took so long.
Mike
"Roger Wilco"
On Win32:
{ // Verify boost tss bug is fixed. (still present as of 1.31.0) // This bug will not trigger until application termination. boost::thread_specific_ptr<bool> tss;
bool * testPtr = new bool; tss.reset(testPtr); tss.reset(NULL); // testPtr is deleted and is now invalid. tss.get() returns NULL. // When tss goes out of scope, an unpatched Boost will erroneously delete testPtr a second time. }
I've posted and emailed this bug at least a dozen times now... I hope this gets through this time.
This bug seems very blatant; like it would affect lots of people. Is this bug known? Is Boost threads being actively maintained? This bug has been present for at least a year.