绑定线程对象生存期的外部引用

时间:2016-03-29 19:07:51

标签: c++ multithreading reference

我已经实现了一个线程类,它对任务对象执行一些操作,并通过事件回调报告这些操作。 在这些回调中,我必须包含一些不受我控制的遗留代码。

|任务| < --- | thread |

printf("Error is: %s\n", strerror(saved_error)); 

现在,在应用程序销毁时,我总是等待线程完成,然后退出清理。这在它应该运行的设备(嵌入式)上非常有效,但它经常在单元测试环境中崩溃,因为析构函数具有与生产代码不同的成员销毁顺序。具体来说,有一个引用在我的线程完成并且测试崩溃之前被删除。

如何将外部引用绑定到我的线程对象?我不是在寻找代码示例,这更像是一个架构问题。我不能改变遗留代码,所以我必须使用我得到的东西。

0 个答案:

没有答案