Lua Interface 的多核bug
[ 2008-11-04 23:25:41 pm | 作者: Maya ]
bug阿bug。。。
差不多去年年底的样子开始接触lua,主要都是在.net平台,所以看上了luainterface,使用也很方便,源码什么的都开放,近期在家里的双志强机器上跑程序发现活存在访问非法内存的问题,网上查之说是多核的一个bug,但是只有编译好的版本,并没有源码,还是想看看到底是什么原因造成的,也方便以后在对现有自己手上的版本做修正。
在luainterface的站点上看到几个解决方案,目前luainterface版本树上的应该已经修正了这个问题,不过作者引入了一个LuaBase的类,luaTable和LuaFunction都继承了LuaBase,然后在LuaBase里面写了关于析构的处理,我又不是很想把目前再用的版本替换成现在的版本树,毕竟不是release的。。。所以代码单独取出。
以上,在双C机器上跑了一天测试程序,没有在发现内存访问错误的问题。
评论Feed: http://chaoren.muroom.com/feed.asp?q=comment&id=268
差不多去年年底的样子开始接触lua,主要都是在.net平台,所以看上了luainterface,使用也很方便,源码什么的都开放,近期在家里的双志强机器上跑程序发现活存在访问非法内存的问题,网上查之说是多核的一个bug,但是只有编译好的版本,并没有源码,还是想看看到底是什么原因造成的,也方便以后在对现有自己手上的版本做修正。
在luainterface的站点上看到几个解决方案,目前luainterface版本树上的应该已经修正了这个问题,不过作者引入了一个LuaBase的类,luaTable和LuaFunction都继承了LuaBase,然后在LuaBase里面写了关于析构的处理,我又不是很想把目前再用的版本替换成现在的版本树,毕竟不是release的。。。所以代码单独取出。
~LuaTable()
{
Dispose(false);
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
public virtual void Dispose(bool disposeManagedResources)
{
if (!this.disposed)
{
if (disposeManagedResources)
{
interpreter.dispose(reference);
}
disposed = true;
}
}
{
Dispose(false);
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
public virtual void Dispose(bool disposeManagedResources)
{
if (!this.disposed)
{
if (disposeManagedResources)
{
interpreter.dispose(reference);
}
disposed = true;
}
}
以上,在双C机器上跑了一天测试程序,没有在发现内存访问错误的问题。
评论Feed: http://chaoren.muroom.com/feed.asp?q=comment&id=268







俺是看不太懂僚~~