id summary reporter owner description type status milestone component version severity resolution keywords cc 3837 thread_specific_ptr returns incorrect values if another one was constructed at the same address earlier anonymous viboes "optional< thread_specific_ptr > optr; void other_thread(){   optr=none;   optr=in_place(); } int main(){   optr=in_place();   optr->reset(new int);   thread(bind(&other_thread));   this_thread::sleep(posix_time::seconds(5));   assert(optr->get() == 0); //fails! } the assertion should not fail. this can also be triggered by dynamic allocation. the address of thread_specific_ptr is treated as a key that is unique until the end of the thread in Boost.Thread, which is an incorrect assumption. a unique key obtained under a mutex on construction of thread_specific_ptr could be used instead. " Bugs closed thread Boost 1.41.0 Problem invalid tss