about summary refs log tree commit diff
path: root/src/thread
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011-03-16 11:36:21 -0400
committerRich Felker <dalias@aerifal.cx>2011-03-16 11:36:21 -0400
commit29fae65780f4c5ccda3758828da7a83073297ccc (patch)
tree518fa66e4cf65b8aaff11c617fe5bb60c9f9f64f /src/thread
parentcc832d8a31e674c3d8ee7168e4a613b5bf8124e0 (diff)
downloadmusl-29fae65780f4c5ccda3758828da7a83073297ccc.tar.gz
musl-29fae65780f4c5ccda3758828da7a83073297ccc.tar.xz
musl-29fae65780f4c5ccda3758828da7a83073297ccc.zip
cut out a syscall on thread creation in the case where guard size is 0
Diffstat (limited to 'src/thread')
-rw-r--r--src/thread/pthread_create.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/thread/pthread_create.c b/src/thread/pthread_create.c
index 9b6385f5..7494a486 100644
--- a/src/thread/pthread_create.c
+++ b/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);