[Ace-users] Instantiation of ACE_Task_Base from Windows thread (_beginthreadex) causes memory leak.

darren at spawar.navy.mil darren at spawar.navy.mil
Tue Feb 5 17:42:21 CST 2008


Because of application requirements, I cannot use ACE throughout my
application but must speak CORBA to another system. My Windows
application is MFC based and the CORBA communications within a DLL.
System requirement-s dictate I use ACE version 5.4.3 and TAO version
1.4.3.

During runtime, communication works great. I call ACE::init() at the
beginning of the Windows thread containing ACE/TAO, and I call
ACE::fini() at the conclusion of the thread (application closing).

My problem arises when the application is closed. It seems TAO does
not release its resources (Is this TSS as documented in
http://www.theaceorb.com/faq/index.html#WindowsThreadsMemLeak?). This
results in my application refusing to allow the DLL to unload. This
causes my app to crash very regularly when the CORBA DLL is loaded.

"Use ACE threads wherever possible" is not a solution for us. Is there
a way to elegantly release the TSS or is there something else I am not
seeing?

Thank you so much for your help.


More information about the Ace-users mailing list