Lua Lanes 使应用程序崩溃。

我有一个 Lua 脚本,使用最新的 lua lanes。我有以下脚本:

local lanes = require "lanes"
lanes.configure()
require "helper_interfaces"
--require "assert"
local cleanup
local error_func =  function(err)
                     return debug.traceback(err)
                    end

local function sample(n)
   -- set_finalizer(cleanup)
   local success, result = xpcall(m.usb_lua_printlog("hi\r\n"), error_func)
   print(success, result)
   return 2*n
end

--lanes.configure()
EnablePrintLog()
--PrintLog("hi")
usb_lua_printlog("hi\r\n")
local lanes_gen = assert(lanes.gen)
local lanes_linda = assert(lanes.linda)

--while (true) do
a1 = lanes_gen("*", { globals =  { ["m"] = require "UsbTestApp" } }, sample)(1)
a1:join()
--set_debug_threadname("first")
while true do
  str = a1.status
  --thread_gc(a1)
  if str == "done" or str == "cancelled" or str == "error" then
     usb_lua_wait(1000)
     break
  end
end

我的问题是:

现在当我从我的应用程序中执行它(在 Windows 上)时,在执行它时会崩溃,以下是崩溃时的调用堆栈。

UsbTestApp.exe!_CrtIsValidHeapPointer(const void * pUserData)第2036行 C ++
UsbTestApp.exe!_free_dbg_nolock(void * pUserData,int nBlockUse)第1322行+0x9 字节 C ++
UsbTestApp.exe!_free_dbg(void * pUserData,int nBlockUse)第1265行+0xd字节 C ++>
UsbTestApp.exe!free(void * pUserData)第49行+0xb字节 C ++
UsbTestApp.exe!_luaL_loadbuffer()+0x42字节 C
UsbTestApp.exe!_luaM_realloc_()+0x23字节 C
UsbTestApp.exe!_luaH_free()+0x2b字节 C
UsbTestApp.exe!_luaC_separateudata()+0x95d字节 C
UsbTestApp.exe!_luaC_freeall()+0x4ce字节 C
UsbTestApp.exe!_luaC_fullgc()+0x4f字节 C
UsbTestApp.exe!_lua_gc()+0x3f字节 C
UsbTestApp.exe!USB_LUA_TEST_EXECUTE_SCRIPT(lua_State * ulState)第579行+0xd字节 C ++
UsbTestApp.exe!USB_LUA_TEST_SCRIPT_RUN(lua_State * ulState)第461行+0x9字节 C ++
UsbTestApp.exe!_luaD_precall()+0x193字节 C
UsbTestApp.exe!_luaD_call()+0x3c字节 C
UsbTestApp.exe!_lua_pcall()+0xd1字节 C
UsbTestApp.exe!_luaD_rawrunprotected()+0x53字节 C
UsbTestApp.exe!_luaD_pcall()+0x3e字节 C
UsbTestApp.exe!_lua_cpcall()+0x2f字节 C
UsbTestApp.exe!USB_LUA_CREATE_NEW_LUA_STATE(LUA_Script * luaScript)第304行+0x15字节 C ++
UsbTestApp.exe!UsbTestSuiteLIThread(void * lpParam)第162行+0x9字节 C ++

有人能帮我试着帮我吗?由于包含和加载 lanes.configure()似乎会导致此问题。可能是我做错了什么或任何建议都可能有所帮助。如果您需要更多信息,请告诉我。

非常感谢。

问候,

Mayur

点赞