it's better to use cross platform form boost/thread.hpp