您的位置:首页 > 其它

epoll 指向的d对象导致的gc释放问题,使用手动释放gc引用的对象

2017-04-21 17:08 369 查看
1.dlang在转换成void*指针的时候,gc会认为不引用此对象,造成提前对象释放,导致epoll变成野指针。

2.使用gc手动控制对象的生命周期,手动释放。 设置对象gc属性为NO_MOVE, GC就不会引用对象了

锁定对象: GC.addRoot(cast(void*)this);

GC.setAttr(cast(void*)this, GC.BlkAttr.NO_MOVE);

释放对象:

GC.removeRoot(cast(void*)this);

GC.clrAttr(cast(void*)this, GC.BlkAttr.NO_MOVE);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐