Browse Source

fix pthread_create regression from stack/guard size simplification

commit 33ce920857405d4f4b342c85b74588a15e2702e5 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.
Rich Felker 8 years ago
parent
commit
ea7891a651
1 changed files with 4 additions and 1 deletions
  1. 4 1
      src/thread/pthread_create.c

+ 4 - 1
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_PARENT_SETTID | CLONE_CHILD_CLEARTID | CLONE_DETACHED;
 	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;
 	self = __pthread_self();