diff options
Diffstat (limited to 'nptl')
-rw-r--r-- | nptl/allocatestack.c | 2 | ||||
-rw-r--r-- | nptl/nptl-init.c | 4 | ||||
-rw-r--r-- | nptl/pthreadP.h | 2 | ||||
-rw-r--r-- | nptl/pthread_attr_getstacksize.c | 2 | ||||
-rw-r--r-- | nptl/pthread_create.c | 8 | ||||
-rw-r--r-- | nptl/pthread_getattr_default_np.c | 3 | ||||
-rw-r--r-- | nptl/pthread_setattr_default_np.c | 6 | ||||
-rw-r--r-- | nptl/vars.c | 2 |
8 files changed, 14 insertions, 15 deletions
diff --git a/nptl/allocatestack.c b/nptl/allocatestack.c index c94980c..d16f3d7 100644 --- a/nptl/allocatestack.c +++ b/nptl/allocatestack.c @@ -425,7 +425,7 @@ allocate_stack (const struct pthread_attr *attr, struct pthread **pdp, else { lll_lock (__default_pthread_attr_lock, LLL_PRIVATE); - size = __default_pthread_attr.stacksize; + size = __default_pthread_attr.internal.stacksize; lll_unlock (__default_pthread_attr_lock, LLL_PRIVATE); } diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c index 96b1444..d4cf20e 100644 --- a/nptl/nptl-init.c +++ b/nptl/nptl-init.c @@ -318,8 +318,8 @@ __pthread_initialize_minimal_internal (void) /* Round the resource limit up to page size. */ limit.rlim_cur = ALIGN_UP (limit.rlim_cur, pagesz); lll_lock (__default_pthread_attr_lock, LLL_PRIVATE); - __default_pthread_attr.stacksize = limit.rlim_cur; - __default_pthread_attr.guardsize = GLRO (dl_pagesize); + __default_pthread_attr.internal.stacksize = limit.rlim_cur; + __default_pthread_attr.internal.guardsize = GLRO (dl_pagesize); lll_unlock (__default_pthread_attr_lock, LLL_PRIVATE); #ifdef SHARED diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h index 9c6dd41..acc8e88 100644 --- a/nptl/pthreadP.h +++ b/nptl/pthreadP.h @@ -199,7 +199,7 @@ enum /* Default pthread attributes. */ -extern struct pthread_attr __default_pthread_attr attribute_hidden; +extern union pthread_attr_transparent __default_pthread_attr attribute_hidden; extern int __default_pthread_attr_lock attribute_hidden; /* Size and alignment of static TLS block. */ diff --git a/nptl/pthread_attr_getstacksize.c b/nptl/pthread_attr_getstacksize.c index 346b375..9830a63 100644 --- a/nptl/pthread_attr_getstacksize.c +++ b/nptl/pthread_attr_getstacksize.c @@ -33,7 +33,7 @@ __pthread_attr_getstacksize (const pthread_attr_t *attr, size_t *stacksize) if (size == 0) { lll_lock (__default_pthread_attr_lock, LLL_PRIVATE); - size = __default_pthread_attr.stacksize; + size = __default_pthread_attr.internal.stacksize; lll_unlock (__default_pthread_attr_lock, LLL_PRIVATE); } *stacksize = size; diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c index 347d510..86fbeb5 100644 --- a/nptl/pthread_create.c +++ b/nptl/pthread_create.c @@ -612,16 +612,16 @@ __pthread_create_2_1 (pthread_t *newthread, const pthread_attr_t *attr, STACK_VARIABLES; const struct pthread_attr *iattr = (struct pthread_attr *) attr; - struct pthread_attr default_attr; + union pthread_attr_transparent default_attr; bool destroy_default_attr = false; bool c11 = (attr == ATTR_C11_THREAD); if (iattr == NULL || c11) { - int ret = __pthread_getattr_default_np ((pthread_attr_t *) &default_attr); + int ret = __pthread_getattr_default_np (&default_attr.external); if (ret != 0) return ret; destroy_default_attr = true; - iattr = &default_attr; + iattr = &default_attr.internal; } struct pthread *pd = NULL; @@ -852,7 +852,7 @@ __pthread_create_2_1 (pthread_t *newthread, const pthread_attr_t *attr, out: if (destroy_default_attr) - __pthread_attr_destroy ((pthread_attr_t *) &default_attr); + __pthread_attr_destroy (&default_attr.external); return retval; } diff --git a/nptl/pthread_getattr_default_np.c b/nptl/pthread_getattr_default_np.c index 5c99f98..f3ce1c2 100644 --- a/nptl/pthread_getattr_default_np.c +++ b/nptl/pthread_getattr_default_np.c @@ -22,8 +22,7 @@ int __pthread_getattr_default_np (pthread_attr_t *out) { lll_lock (__default_pthread_attr_lock, LLL_PRIVATE); - int ret = __pthread_attr_copy (out, - (pthread_attr_t *) &__default_pthread_attr); + int ret = __pthread_attr_copy (out, &__default_pthread_attr.external); lll_unlock (__default_pthread_attr_lock, LLL_PRIVATE); return ret; } diff --git a/nptl/pthread_setattr_default_np.c b/nptl/pthread_setattr_default_np.c index eb5d24d..c4cfb4e 100644 --- a/nptl/pthread_setattr_default_np.c +++ b/nptl/pthread_setattr_default_np.c @@ -68,15 +68,15 @@ pthread_setattr_default_np (const pthread_attr_t *in) /* Preserve the previous stack size (see above). */ if (temp.internal.stacksize == 0) - temp.internal.stacksize = __default_pthread_attr.stacksize; + temp.internal.stacksize = __default_pthread_attr.internal.stacksize; /* Destroy the old attribute structure because it will be overwritten. */ - __pthread_attr_destroy ((pthread_attr_t *) &__default_pthread_attr); + __pthread_attr_destroy (&__default_pthread_attr.external); /* __default_pthread_attr takes ownership, so do not free attrs.internal after this point. */ - __default_pthread_attr = temp.internal; + __default_pthread_attr = temp; lll_unlock (__default_pthread_attr_lock, LLL_PRIVATE); return ret; diff --git a/nptl/vars.c b/nptl/vars.c index b88300d..3696020 100644 --- a/nptl/vars.c +++ b/nptl/vars.c @@ -22,7 +22,7 @@ /* Default thread attributes for the case when the user does not provide any. */ -struct pthread_attr __default_pthread_attr attribute_hidden; +union pthread_attr_transparent __default_pthread_attr attribute_hidden; /* Mutex protecting __default_pthread_attr. */ int __default_pthread_attr_lock = LLL_LOCK_INITIALIZER; |