在调试时ace6.0.6发现,使用到全局的ACE_TSS类时,程序退出时会报错,跟踪了一下发现问题的原因在于析构的顺序问题
1.退出时,先析构的是ACE_Main_Base
2.之后析构的是全局ACE_TSS对象,这时就出在setspecific的时候出错
3.解决方案控制全局对象的构造与析构顺序,让ACE_Main_Base最后才析构,这点貌似不好做到
临时的方法是改成全局指针,在main函数栈里构造对象,再把指针传给全局的,测试下来,不再报错
但这个方法比较蛋疼
在调试时ace6.0.6发现,使用到全局的ACE_TSS类时,程序退出时会报错,跟踪了一下发现问题的原因在于析构的顺序问题
1.退出时,先析构的是ACE_Main_Base
2.之后析构的是全局ACE_TSS对象,这时就出在setspecific的时候出错
3.解决方案控制全局对象的构造与析构顺序,让ACE_Main_Base最后才析构,这点貌似不好做到
临时的方法是改成全局指针,在main函数栈里构造对象,再把指针传给全局的,测试下来,不再报错
但这个方法比较蛋疼