关于析构函数的执行时机

main---程序主入口
mainV2---
1,类,在主程序main建立对象并运行
2,ModuleManager---模块管理器类,被mainV2创建使用。
2,InferV1---推理模块类,被ModuleManager创建使用,析构函数里须要释放cuda资源。


情况1:
ModuleManager模块管理器在mainV2.cpp内实现,退出程序时正常释放cuda资源:
program 'MainV2' End.
moduleId_: A176-6 ,Infer_DeInit start
moduleId_: A176-6 ,Infer_DeInit end
moduleId_: A176-5 ,Infer_DeInit start
moduleId_: A176-5 ,Infer_DeInit end
moduleId_: A176-4 ,Infer_DeInit start
moduleId_: A176-4 ,Infer_DeInit end
program [main_grade:1] end.


情况2:
ModuleManager模块管理器在mainV2.h内实现,退出程序时无法释放cuda资源,报错:
program 'MainV2' End.
program [main_grade:1] end.
moduleId_: A176-6 ,Infer_DeInit start
pure virtual method called
terminate called after throwing an instance of 'nvinfer1::CudaRuntimeError'
  what():  driver shutting down
Aborted (core dumped)



立贴,方便回查。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值