simplify pthread_attr_t stack/guard size representation

previously, the pthread_attr_t object was always initialized all-zero,
and stack/guard size were represented as differences versus their
defaults. this required lots of confusing offset arithmetic everywhere
they were used. instead, have pthread_attr_init fill in the default
values, and work with absolute sizes everywhere.
This commit is contained in:
Rich Felker
2016-11-07 20:47:24 -05:00
parent 7442442ccc
commit 33ce920857
7 changed files with 13 additions and 11 deletions

View File

@ -4,6 +4,6 @@ int pthread_attr_setstack(pthread_attr_t *a, void *addr, size_t size)
{
if (size-PTHREAD_STACK_MIN > SIZE_MAX/4) return EINVAL;
a->_a_stackaddr = (size_t)addr + size;
a->_a_stacksize = size - DEFAULT_STACK_SIZE;
a->_a_stacksize = size;
return 0;
}