ACE_TSS全局变量析构的问题

原创 2012年01月02日 11:05:49

在调试时ace6.0.6发现,使用到全局的ACE_TSS类时,程序退出时会报错,跟踪了一下发现问题的原因在于析构的顺序问题

 

1.退出时,先析构的是ACE_Main_Base

 

2.之后析构的是全局ACE_TSS对象,这时就出在setspecific的时候出错

 

3.解决方案控制全局对象的构造与析构顺序,让ACE_Main_Base最后才析构,这点貌似不好做到

临时的方法是改成全局指针,在main函数栈里构造对象,再把指针传给全局的,测试下来,不再报错

但这个方法比较蛋疼

相关文章推荐

多进程引用的动态链接库中的全局变量问题

多进程引用的动态链接库中的全局变量问题现有liba.so中定义一个全局变量char buf; libb.so 中的函数print会将buf进行输出。 进程A和进程B使用-lb进行编译链接,并在进...
  • yuyin86
  • yuyin86
  • 2013年08月23日 19:36
  • 4828

对“C++添加一个头文件和extern以及全局变量和局部变量问题”的解释

过了一天,问了一部分人,百度查了一下想了一下,很简单的问题。(以下为转载新浪博客somnik的归纳) 一、变量的分类 变量可以分为:全局变量、静态全局变量、静态局部变量和局部变量。 按存储区域分,...

c语言全局变量和局部变量问题汇总

1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译...

c语言全局变量和局部变量问题汇总

1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译...

内存问题--全局变量被修改

一、遇到的问题1)情景说明: 我在一个类中定义了一个全局变量a,然后在类初始化的时候给该变量赋一个初始值a=10。该变量有被其他类外部引用,但是外部引用只是使用该值,并没有修改该值。然后在一个Tim...

探讨:程序在内存中的分配(常量,局部变量,全局变量,程序代码)问题

转自:http://www.jb51.net/article/37493.htm 一. 在c中分为这几个存储区 1.栈 - 由编译器自动分配释放 2.堆 - 一般由程序员分配释放...

全局变量与局部变量初始化问题

头文件: [cpp] view plaincopyprint? #ifndef FRIEND_H   #define FRIEND_H   struct X;      struc...

c语言全局变量和局部变量问题及解决汇总

1、局部变量能否和全局变量重名?  答:能,局部会屏蔽全局。要用全局变量,需要使用"::"  局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ACE_TSS全局变量析构的问题
举报原因:
原因补充:

(最多只允许输入30个字)