2013-05-19 48 views
-1

我正在閱讀這lua thread tutorial和我的lua代碼可能被其他線程在任何時候訪問,我所要做的就是保護luaState免受腐敗。如何在luajit中實現lua_lock/lua_unlock?

我剛剛搜查luajit的來源,但發現沒有lua_lock/lua_unlock到位。那麼是否可以將這種鎖定/解鎖添加到luajit?如果是,如何?

順便說一句,我在Windows

回答

0

正如該教程中明確指出使用Visual C++,有沒有 「lua_lock/lua_unlock」 功能,無論是在普通的Lua或LuaJIT發行。 應該寫他們。本教程提供了Windows示例,但如果您不使用Windows線程,則必須自己編寫它們。

+0

是的,我知道教程有明確的聲明,但根據該教程(我正在使用lua 5.1進行測試)進行修改後,我的應用程序崩潰了。 –

+0

調用堆棧:> \t NTDLL.DLL 77bd224d()\t未知 \t [下面的幀可能是不正確的和/或缺失,加載NTDLL.DLL無符號] \t \t NTDLL.DLL 77bd215c()\t未知 \t! test.exe的!_LuaLock()\tç \t test.exe的!_lua_atpanic()\tç \t test.exe的!_luaL_newstate()\tç KERNEL32.DLL \t!7753ed6c()\t未知 \t ntdll.dll中!77c0377b( )\t未知 \t ntdll.dll!77c0374e()\t未知 –

2

LuaJIT不支持lua_lock/unlock。您將不得不手動控制自己對lua_State的訪問。