Пробую писать DLL для работы с терминалом без помощи LUA - в lua файле только инструкция require('Module'). Регистрирую метод OnStop и main внутри DLL:
static int Start(IntPtr luaState) {
while (isRunning == 1) {
Thread.Sleep(10);
}
isRunning = 1;
return 0;
}
Когда скрипт стартует, то в течение нескольких секунд (всегда по разному) его можно корректно остановить без ошибок. Но после некоторого времени (минуту или больше) получаю: ACCESS VIOLATION at address 0x000000000000000.
Не понимаю почему так происходит, ощущение, будто кто-то прибил ссылку на мою функцию OnStop, возможно LUA GC, но почему не понимаю.
Подскажите, пожалуйста, синхронизация была намеренно выключена пока терминал не закрыть или это баг? Раньше с каждой новой новостью она добавлялась в файл и можно было отслеживать приход новостей по размеру файла. Сейчас в последней версии терминала пока его не закрыть, в файл ничего не записывается и отслеживать невозможно.