[Ace-users] [ace-users] ~ACE_Reactor crashes under Win32

Vial, Florent fvial at arri.de
Thu Nov 15 07:48:44 CST 2007


Hi all,

First of all, I'd like to say I do not have that much experience with
Ace and may not be aware of some basic issues.
However, looking through the archive of the mailing list was not
successfull regarding my problem.
So here we go : I am using the ACE 5.6.1 under Linux Red Hat Enterprise
4 (64 bits) and Windows XP Professional (32 bits). The application runs
fine under Linux, but crashes when closing under Windows XP.

I built the ACE Debug configuration under Visual Studio 2005 SP 1 from
the solution file provided with the 5.6.1 package.

The application is described as following :  
- 1 server sending images over the network.
- 1 client (inheriting ACE_Task <ACE_MT_SYNCH>) connected to the server
via an ACE_SOCK_Connector.
- 1 Qt widget displaying the image received by the client through the Qt
event queue.

After the client object has been created, the port network address is
set. Then the client task is started using activate(). An
ACE_Event_Handler together with an ACE_Reactor are used to manage the
connection.

Everything goes fine from the functionality point of view.
When I close the application, the destructor of the client calls
ACE_Reactor::notify() on the reactor, and wait().
This goes fine, but when the destructor of ACE_Reactor is called, there
is a crash happening with the very clear message "0xC0000005: Access
violation reading location 0x04f9fad0".
This corresponds to the line :

ACE_Event_Handler::Reference_Counting_Policy::Value
ACE_Event_Handler::Reference_Counting_Policy::value (void) const
{
  return this->value_;
}


The call stack is following :

ACEd.dll: ACE_Event_Handler::Reference_Counting_Policy::value()  Line
232 + 0x3 bytes
ACEd.dll:
ACE_WFMO_Reactor_Handler_Repository::make_changes_in_current_infos()
Line 777 + 0xf bytes
ACEd.dll: ACE_WFMO_Reactor_Handler_Repository::make_changes()  Line 417
ACEd.dll: ACE_WFMO_Reactor::~ACE_WFMO_Reactor()  Line 1332 + 0x19 bytes
ACEd.dll: ACE_WFMO_Reactor::`vector deleting destructor'()  + 0x6c bytes
ACEd.dll: ACE_Reactor::~ACE_Reactor()  Line 123 + 0x39 bytes
MyApp.exe: MyClass::MyClientTask::~MyClientTask()  Line 50 + 0x15 bytes

Anyone would have a clue of what might go wrong ?
Thank you in advance,

Florent

Arnold & Richter Cine Technik GmbH & Co. Betriebs KG
Sitz: Munchen  -  Registergericht: Amtsgericht Munchen  -  Handelsregisternummer: HRA 57918
Personlich haftender Gesellschafter: Arnold & Richter Cine Technik GmbH
Sitz: Munchen  -  Registergericht: Amtsgericht Munchen  -  Handelsregisternummer: HRB 54477
Geschaftsfuhrer: Prof. Dr. Dejan Ilic; Franz Kraus; Jens Schafer
Beiratsvorsitzender: Prof. Dr. Hans-Jorg Bullinger



More information about the Ace-users mailing list