segmentation-fault - 英特尔 TBB 文件访问
问题描述
我正在学习使用英特尔 TBB 库,但遇到了一个奇怪的错误。我的源节点使用 fstream 从文件中读取数据,但是如果我尝试在类析构函数中关闭 fstream,则程序段错误。有谁知道为什么在使用英特尔 TBB 时不能在源节点类的析构函数中关闭文件流?还有什么是修复,所以我可以在完成读取后正确关闭文件?
解决方案
没有源代码很难判断,但在这种情况下,通常是对象生命周期的问题。当你提交一个待执行的 TBB 任务时,它将在稍后的某个时间点执行,由 TBB 任务调度程序决定。如果此类任务引用了一个对象(通过指针或引用),您需要确保在任务执行时引用的对象仍然有效(未销毁)。
推荐阅读
- ruby-on-rails - 上传带有 capistrano 'cap production deploy' 错误的 Rails 应用程序::authorize 尚未定义(ArgumentError)?
- audio - FFmpeg:如何将多个单声道文件合并为一个多声道文件?
- javascript - 如何以概率在离子中旋转轮盘游戏
- c++ - 在 C/C++ 中的 Unix 上的 PTY 伪终端上禁用 ECHO
- node.js - 树莓派上的 tfmini-plus 校验和错误
- react-native - 如何同时使用抽屉导航器和标签导航器?
- reactjs - 输入不会根据验证改变颜色 (rcc)
- sql-server - SQL Server 中多列索引的结构
- javascript - WxWidget WebView 上的 Openlayer Map 鼠标事件(已更新)
- c++ - 如何将 uint32_t 数字转换为 char[8]?