1
0
Fork 0
mirror of https://gitlab.alpinelinux.org/alpine/aports.git synced 2025-07-16 12:45:18 +03:00
aports/testing/lwan/fix-pthread-stack-min.patch
Jakub Jirutka c061c56629 testing/lwan: new aport
https://lwan.ws
Experimental, scalable, high performance HTTP server
2018-02-01 01:01:58 +01:00

33 lines
1.2 KiB
Diff

From 3721cbececa18b369eb80176cb8aebe4beb99f1c Mon Sep 17 00:00:00 2001
From: Leandro Pereira <leandro@hardinfo.org>
Date: Mon, 22 Jan 2018 20:09:54 -0800
Subject: [PATCH] Pthread stack size should never be smaller than 16KiB
Tis is a nasty hack to support Musl libc, which defines
PTHREAD_STACK_MIN to 2048 bytes.
A better approach might be asking pthread to give the
actual stack size, and store this information somewhere
that the coroutine library will have access to; maybe
in the switcher struct.
Patch-Source: https://github.com/lpereira/lwan/commit/3721cbececa18b369eb80176cb8aebe4beb99f1c,
https://github.com/lpereira/lwan/commit/c5f5222a7c39d50c25348037b3d26716fbd6888b
diff --git a/src/lib/lwan-coro.c b/src/lib/lwan-coro.c
index 30be461..b3dfa54 100644
--- a/src/lib/lwan-coro.c
+++ b/src/lib/lwan-coro.c
@@ -34,7 +34,11 @@
#include <valgrind/valgrind.h>
#endif
-#define CORO_STACK_MIN ((3 * (PTHREAD_STACK_MIN)) / 2)
+#if PTHREAD_STACK_MIN <= 16384
+# undef PTHREAD_STACK_MIN
+# define PTHREAD_STACK_MIN 16384
+#endif
+#define CORO_STACK_MIN ((3 * (PTHREAD_STACK_MIN)) / 2)
static_assert(DEFAULT_BUFFER_SIZE < (CORO_STACK_MIN + PTHREAD_STACK_MIN),
"Request buffer fits inside coroutine stack");