在可能尚未创建的pthread_t上调用pthread_join

时间:2016-01-12 13:09:07

标签: pthreads posix pthread-join

我们有一个具有受保护的pthread_t变量的类。一旦构造了该类,pthread_t就会存在,但它没有分配给它的ID,这就是pthread_create的作用。

在这种情况下,可以在pthread_t变量上调用pthread_join吗?

如果我正确理解了pthread_join的手册页,它应该返回一个ESRCH错误,但是这个手册页可以用不同的方式解释。

1 个答案:

答案 0 :(得分:1)

pthread_t只是unsigned long int,因此在声明期间将其初始化为0值。现在在pthread_join之前检查一下它是否非零。如果为零,则不调用pthread_create。