NULL
関数の2番目の引数として渡すとpthread_create()
、スレッドが結合可能になることをどこから知っているのかと尋ねられました。
つまり、manページにそのように記載されていることは知っていますが、コードの正当化が要求されました。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, };
しかし、これが結合可能なスレッドになることをコードのどこに正確に記述しているかはわかりません。
前もって感謝します。