Я не использовал LuaJIT сам, кроме как с игрушечными примерами. Но поскольку никто еще не дал никаких ответов ...
От просмотра документации LuaJIT зависит от расширений Coco стандартной библиотеки сопрограмм. Одним из изменений, внесенных Coco, является то, что функции, которые создают новую сопрограмму, теперь принимают необязательный аргумент, который задает размер стека.
Цитирование документов Coco:
coro = coroutine.create(f [, cstacksize])
func = coroutine.wrap(f [, cstacksize])
Необязательный аргумент cstacksize
определяет размер стека C
выделить для сопрограммы:
- Размер стека по умолчанию используется, если
cstacksize
не указан или равен nil
или
ноль.
- Стек C не выделяется, если
cstacksize
равно -1
.
- Любое другое значение округляется до минимального размера (т. Е. Используйте
1
, чтобы получить
минимальный размер).
Существует также новая функция coroutine.cstacksize([newdefault])
, которая устанавливает размер стека C по умолчанию, а также некоторые соответствующие изменения в API C.
Кроме того, в LuaJIT-версии luaconf.h имеется множество параметров конфигурации во время компиляции. Там может быть что-то, что устанавливает значение по умолчанию. В Windows также есть настройка времени соединения для основного стека исполняемого файла, установленная программой LINK.EXE MSVC с помощью инструкции STACKSIZE в файле .DEF приложения.