• R
    make pthread_attr_init honor defaults set by pthread_setattr_default_np · 14992d43
    Rich Felker 提交于
    this fixes a major gap in the intended functionality of
    pthread_setattr_default_np. if application/library code creating a
    thread does not pass a null attribute pointer to pthread_create, but
    sets up an attribute object to change other properties while leaving
    the stack alone, the created thread will get a stack with size
    DEFAULT_STACK_SIZE. this makes pthread_setattr_default_np useless for
    working around stack overflow issues in such applications, and leaves
    a major risk of regression if previously-working code switches from
    using a null attribute pointer to an attribute object.
    
    this change aligns the behavior more closely with the glibc
    pthread_setattr_default_np functionality too, albeit via a different
    mechanism. glibc encodes "default" specially in the attribute object
    and reads the actual default at thread creation time. with this
    commit, we now copy the current default into the attribute object at
    pthread_attr_init time, so that applications that query the properties
    of the attribute object will see the right values.
    14992d43
pthread_create.c 8.9 KB