Мое серверное приложение, выполняющее сценарии Lua одновременно с использованием LuaJit. Каждый внутренний класс сценария C++ хранит собственное представление lua_State.
Чего я пытаюсь добиться, так это реализовать какой-то общий пул потоков, чтобы избежать множества потоков, порожденных каждым запущенным скриптом (я знаю, что Lua запускает сопрограммы, и это не настоящие потоки, но некоторые библиотеки действительно порождают фактические потоки, например cqueue делает вилку C)
Я знаю, что есть довольно много библиотек, таких как luv (привязки libuv из проекта luvit), turbo, cqueue, и на данный момент мне просто интересно, буду ли я использовать, например, EventLoop, предоставленный libuv из сценария A, это будет тот же цикл, что и в скрипте B, для которого требуется та же библиотека?
Проблема заключается в том, что сценарий Lua может иметь длительную задачу, в то время как код C++ должен вызывать обратный вызов события. Учитывая, что lua_State не является потокобезопасным, он заблокирует весь поток сервера.