FreeBSD: Reduce stack usage of Lua
Use the same reduced buffer size for lauxlib that is used on Linux. Fixes panic on HEAD in lua gsub test designed to exhaust stack space. With this we can remove the special case to reserve more stack space on FreeBSD. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Kyle Evans <kevans@FreeBSD.org> Signed-off-by: Ryan Moeller <ryan@iXsystems.com> Closes #10959
This commit is contained in:
parent
6bdb09510b
commit
5f8a9e6a02
|
@ -368,11 +368,7 @@ extern int lcompat_hashnum(int64_t);
|
|||
@@ LUAL_BUFFERSIZE is the buffer size used by the lauxlib buffer system.
|
||||
** CHANGE it if it uses too much C-stack space.
|
||||
*/
|
||||
#ifdef __linux__
|
||||
#define LUAL_BUFFERSIZE 512
|
||||
#else
|
||||
#define LUAL_BUFFERSIZE 1024
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
|
|
|
@ -126,16 +126,7 @@ typedef LUAI_UACNUMBER l_uacNumber;
|
|||
* Minimum amount of available stack space (in bytes) to make a C call. With
|
||||
* gsub() recursion, the stack space between each luaD_call() is 1256 bytes.
|
||||
*/
|
||||
#if defined(__FreeBSD__)
|
||||
/*
|
||||
* FreeBSD needs a few extra bytes in unoptimized debug builds to avoid a
|
||||
* double-fault handling the error when the max call depth is exceeded just
|
||||
* before the C stack runs out. 64 bytes seems to do the trick.
|
||||
*/
|
||||
#define LUAI_MINCSTACK 4160
|
||||
#else
|
||||
#define LUAI_MINCSTACK 4096
|
||||
#endif
|
||||
|
||||
/*
|
||||
** maximum number of upvalues in a closure (both C and Lua). (Value
|
||||
|
|
Loading…
Reference in New Issue