什么时候可以安全地在std :: thread上调用native_handle()?
问题描述:
我正在创建一个std::thread
,然后尝试获取本地句柄(将用于设置线程名称)。什么时候可以安全地在std :: thread上调用native_handle()?
auto mThread = std::thread(threadActionFcn);
#ifdef DEFINITELY_LINUX_PTHREADS
auto handle = mThread.native_handle();
pthread_setname_np(handle, name);
#endif
我可以保证mThread
的构造已被执行之后或初始化,这是一个竞争条件?
答
当然,你可以在std :: thread对象上创建任何你想要的调用。其他一切都将是一个巨大的陷阱。