Browse Source

fix pthread_create regression from stack/guard size simplification

commit 33ce920857 broke pthread_create
in the case where a null attribute pointer is passed; rather than
using the default sizes, sizes of 0 (plus the remainder of one page
after TLS/TCB use) were used.
master
Rich Felker 10 years ago
parent
commit
ea7891a651
  1. 5
      src/thread/pthread_create.c

5
src/thread/pthread_create.c

@ -186,7 +186,10 @@ int __pthread_create(pthread_t *restrict res, const pthread_attr_t *restrict att
| CLONE_THREAD | CLONE_SYSVSEM | CLONE_SETTLS | CLONE_THREAD | CLONE_SYSVSEM | CLONE_SETTLS
| CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID | CLONE_DETACHED; | CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID | CLONE_DETACHED;
int do_sched = 0; int do_sched = 0;
pthread_attr_t attr = {0}; pthread_attr_t attr = {
._a_stacksize = DEFAULT_STACK_SIZE,
._a_guardsize = DEFAULT_GUARD_SIZE,
};
if (!libc.can_do_threads) return ENOSYS; if (!libc.can_do_threads) return ENOSYS;
self = __pthread_self(); self = __pthread_self();

Loading…
Cancel
Save