Я использую игровой движок, который позволяет программировать на Lua. Команды игрового движка находятся в DLL, созданной из C. В C есть исполняемый файл, который вызывает файл Lua. В этом файле Lua вы помещаете весь код игры, включая основной цикл. Там нет возврата туда и обратно с exe, но вы можете вызывать функции из DLL.
Итак, здесь перед основным циклом я создаю функцию, из которой я собираюсь создать сопрограмму. Эта функция перебирает довольно большую таблицу, поэтому я получаю каждые n итераций. Эта функция имеет бесконечный цикл while, потому что мне нужен этот материал для выполнения каждого цикла основного цикла игры, но это нормально, если он разделен на несколько циклов.
Затем я создаю сопрограмму с этой функцией в качестве параметра. В основном цикле игры я возобновляю эту сопрограмму.
Когда я запускаю свой код, я получаю сообщение об ошибке: соблазн уступить метаметоду / границе C-вызова
Я читал кое-что в Интернете, но не совсем понял, в чем здесь проблема. Как только exe вызывает файл Lua, он вообще не возвращается к exe, пока файл Lua не будет завершен, и, поскольку у меня есть основной цикл в файле Lua, он никогда не заканчивается в моем тестовом примере.
Какие у меня варианты с этим тогда?