use std::thread instead of boost::thread