X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fthread%2Fpthread_setattr_default_np.c;h=58486220e026c778988b68398191c7ec177d0f88;hb=95a540e176b3ebd57d6033fd23cf9fec8a5ddbe8;hp=ffd2712b05602445068ec3edb9d9a2b9fc82c6cd;hpb=31fb174dd295e50f7c5cf18d31fcfd5fe5a063b7;p=musl diff --git a/src/thread/pthread_setattr_default_np.c b/src/thread/pthread_setattr_default_np.c index ffd2712b..58486220 100644 --- a/src/thread/pthread_setattr_default_np.c +++ b/src/thread/pthread_setattr_default_np.c @@ -1,8 +1,9 @@ +#define _GNU_SOURCE #include "pthread_impl.h" #include -extern size_t __default_stacksize; -extern size_t __default_guardsize; +#define MIN(a,b) ((a)<(b) ? (a) : (b)) +#define MAX(a,b) ((a)>(b) ? (a) : (b)) int pthread_setattr_default_np(const pthread_attr_t *attrp) { @@ -13,11 +14,12 @@ int pthread_setattr_default_np(const pthread_attr_t *attrp) if (memcmp(&tmp, &zero, sizeof tmp)) return EINVAL; + unsigned stack = MIN(attrp->_a_stacksize, DEFAULT_STACK_MAX); + unsigned guard = MIN(attrp->_a_guardsize, DEFAULT_GUARD_MAX); + __inhibit_ptc(); - if (attrp->_a_stacksize >= __default_stacksize) - __default_stacksize = attrp->_a_stacksize; - if (attrp->_a_guardsize >= __default_guardsize) - __default_guardsize = attrp->_a_guardsize; + __default_stacksize = MAX(__default_stacksize, stack); + __default_guardsize = MAX(__default_guardsize, guard); __release_ptc(); return 0;