近日使用ACE开发了客户端软件,测试出现一个重入的BUG,客户端注销后,再次进入会导致状态错误。经过跟踪分析发现,是使用ACE_Singleton引起的。
因为ACE_Singleton使用非常便利,在程序里面使用了多个,但因为它是系统管理的,在注销后,这个对象无法释放,导致状态全部错误。改成ACE_Unmanaged_Singleton,自己管理对象的生命期就好了。
请大家注意别犯类似错误啊。
本文介绍了一个使用ACE_Singleton引发的客户端重入BUG案例。开发者在客户端注销后再次登录时遇到状态错误的问题,通过调整为ACE_Unmanaged_Singleton并自行管理对象生命周期解决了这一问题。
近日使用ACE开发了客户端软件,测试出现一个重入的BUG,客户端注销后,再次进入会导致状态错误。经过跟踪分析发现,是使用ACE_Singleton引起的。
因为ACE_Singleton使用非常便利,在程序里面使用了多个,但因为它是系统管理的,在注销后,这个对象无法释放,导致状态全部错误。改成ACE_Unmanaged_Singleton,自己管理对象的生命期就好了。
请大家注意别犯类似错误啊。

被折叠的 条评论
为什么被折叠?
