有人问我,我们从哪里知道当NULL
作为函数中的第二个参数传递时pthread_create()
,线程是可连接的。
我的意思是,我知道手册页是这样说的,但是需要代码中的理由。我知道当NULL
传入时,使用默认属性:
const struct pthread_attr *iattr = (struct pthread_attr *) attr;
if (iattr == NULL)
/* Is this the best idea? On NUMA machines this could mean accessing far-away memory. */
iattr = &default_attr;
我知道它应该在 pthread 库的代码中的某个地方,但我不知道具体在哪里。
我知道 的定义default_attr
在 pthread_create.c 中:
static const struct pthread_attr default_attr = { /* Just some value > 0 which gets rounded to the nearest page size. */ .guardsize = 1, };
但我不知道代码中的确切位置表明这会导致可连接的线程。
提前致谢。