我想知道 libcxx 中实现std::thread::join
的位置。虽然它在<thread>
标题中声明,但似乎没有定义。我甚至看过 libcxxabi ,但也找不到它。
有人可以指出,它在哪里实施?
答案 0 :(得分:2)
位于src/thread.cpp,靠近顶部:
void
thread::join()
{
int ec = pthread_join(__t_, 0);
#ifndef _LIBCPP_NO_EXCEPTIONS
if (ec)
throw system_error(error_code(ec, system_category()), "thread::join failed");
#else
(void)ec;
#endif // _LIBCPP_NO_EXCEPTIONS
__t_ = 0;
}