conform with std::thread