about summary refs log tree commit diff stats
path: root/src/libtools
diff options
context:
space:
mode:
Diffstat (limited to 'src/libtools')
-rwxr-xr-xsrc/libtools/threads32.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/libtools/threads32.c b/src/libtools/threads32.c
index ac75e4c3..3f43d8db 100755
--- a/src/libtools/threads32.c
+++ b/src/libtools/threads32.c
@@ -186,10 +186,15 @@ EXPORT int my32_pthread_create(x64emu_t *emu, void* t, void* attr, void* start_r
 
 	if(attr) {
 		size_t stsize;
+		static size_t minsize = 0;
+		if(!minsize) {
+			minsize = PTHREAD_STACK_MIN;
+			if(minsize<512*1024) minsize = 512*1024;
+		}
 		if(pthread_attr_getstacksize(get_attr(attr), &stsize)==0)
 			stacksize = stsize;
-		if(stacksize<512*1024)	// emu and all needs some stack space, don't go too low
-			pthread_attr_setstacksize(get_attr(attr), 512*1024);
+		if(stacksize<minsize)	// emu and all needs some stack space, don't go too low
+			pthread_attr_setstacksize(get_attr(attr), minsize);
 	}
 	if(GetStackSize((uintptr_t)attr, &attr_stack, &attr_stacksize))
 	{