Преглед изворни кода

cut out a syscall on thread creation in the case where guard size is 0

Rich Felker пре 14 година
родитељ
комит
29fae65780
1 измењених фајлова са 1 додато и 1 уклоњено
  1. 1 1
      src/thread/pthread_create.c

+ 1 - 1
src/thread/pthread_create.c

@@ -195,7 +195,7 @@ int pthread_create(pthread_t *res, const pthread_attr_t *attr, void *(*entry)(vo
 	size += __pthread_tsd_size;
 	map = mmap(0, size, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON, -1, 0);
 	if (!map) return EAGAIN;
-	mprotect(map, guard, PROT_NONE);
+	if (guard) mprotect(map, guard, PROT_NONE);
 
 	tsd = map + size - __pthread_tsd_size;
 	new = (void *)(tsd - sizeof *new - PAGE_SIZE%sizeof *new);