Код на c++ должен получать данные из другого процесса через filemapping, синхронизация через события.
Не могу понять почему quik закрывается после манипуляций со стейтом созданным через lua_newthread
Код |
---|
static int sample(lua_State *L) {
-- ...
lua_State *NL = lua_newthread(L);
tref = luaL_ref(L, LUA_REGISTRYINDEX);
subscriberThread = std::thread([NL] {
for (;;) {
WaitForSingleObject(subscriberEventHandle, INFINITE);
-- если закомментировать три строки ниже, то ошибки не будет
lua_getglobal(NL, "message");
lua_pushstring(NL, "from thread");
lua_call(NL, 1, 0);
ResetEvent(subscriberEventHandle);
}
luaL_unref(NL, LUA_REGISTRYINDEX, tref);
tref = LUA_NOREF;
});
NL = nullptr;
return 0;
}
|
Краш quik происходит после остановки lua-скрипта.
Подскажите, пожалуйста, где ошибка.