какой ужас, вы хоть чуть чуть почитайте описание что такое что такое конструкторы в c++ ну и о синхронизации тоже заодно, в одной нитке вы создаёте и удаляете обьект, а в другой пытаетесь с ним работать(тоесть вы даже не знаете сконструирован обьект, удаляется и прочее)
boost::thread_specific_ptr нужно конструировать до того как с ним начнут работать разные нитки, ну а после для работы с ним читайте про методы reset и release.