Comments (3)
Not close lua vm used for user use Lua api again on lua been close, if so caused crash , there is nothing other bug. If you make sure don't use lua on closed , you can close it.
发自我的 iPhone
在 2015年10月12日,上午10:53,jshmrsn [email protected] 写道:
I've been intentionally closing my LuaState objects for awhile, believing that was closing the LuaVMs. I was very confused by why my Unity editor sometimes would fail to allocate new pointers in my native extensions. I eventually discovered the comments in LuaState:
// be careful, if you close lua vm, make sure you don't use lua state again, // comment this line as default for avoid unexpected crash. // LuaDLL.lua_close(L); // L = IntPtr.Zero;
This was very surprising to me. While it's nice that the comments are there describing why you commented those lines out, there's nothing leading users of Slua to those comments. Either way, not closing the lua VM because of an "unexpected crash" is simply hiding other issue with the user's code if those crashes occur. Indeed, once I added the lua_close back, I did not start to experience other issues, but those issues were real and needed to be fixed.
In fact, one of the issues I discovered by re-adding lua_close was a rare (but very annoying) bug with Slua. In ObjectCache.del, the lua state is correctly removed from the multiState map, BUT oldl and oldoc are not cleared out (set to IntPtr.Zero / null). I believe this leads to a rare condition, where if a lua state is destroyed, and then another is created, the second lua state may have the exact same pointer address as the previous. Because it has the same address as before, the cache incorrectly pulls up the dead cache from oldoc.
Similarly, when a LuaState is closed, it should be removed from LuaState.statemap, and LuaState.oldptr and LuaState.oldstate should be cleared out. This doesn't appear to be happening on master, either.
—
Reply to this email directly or view it on GitHub.
from slua.
Yes, some static variants are not cleared, let me think.
from slua.
I had fix.
from slua.
Related Issues (20)
- 加群
- 加群专用 HOT 3
- 用slua记载一个蓝图类报错
- Insecure Temporary File
- 加群 HOT 1
- 如何编译64位Lua5.3版本的slua HOT 3
- 1.6 升1.7后 android取UnityEngine.Time.deltaTime 取不到 是nil指
- slua clang 编译后 crash HOT 3
- 加群
- 加群
- 加群 HOT 1
- SLua的GetAlreadyDestroyedObjectNames
- 加群
- 加群
- .Net 6(Unity2021) EnableKeyword 的重载方法中增加了 in 关键字
- Unity2021.2, Unity2022.2 Lua桥生成错误
- 加群
- DllNotFoundException: Unable to load DLL 'slua'. Tried the load the following dynamic libraries HOT 1
- 加群
- 加群
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from slua.