On Thu, 2010-05-27 at 09:39 -0400, Alan Conway wrote: > On 05/27/2010 04:35 AM, Gordon Sim wrote: > > I've been trying to debug this issue a little, and am looking for some > > information (from Steve and Andrew in particular). > > > > One issue appears to be that the IO threads are terminated by the c++ > > runtime *before* the IOThread destructor is called. This termination is > > abrupt and they do not get a chance to finish processing any outstanding > > completions (meaning they never call the close callback on the dispatch > > handle which prevents the Connector+ConnectionImpl code from cleaning > > itself up correctly). > > > > I would have expected that all destructors for global and static objects > > would be called before terminating threads. Does anyone have any insight > > into the way this works on windows? Is the fact that the IOThread static > > is in a dynamic library relevant here? > > > > I don't know if the standard guarantees to run static dtors before > terminating > threads.
The current c++ standard says nothing about threads at all. The upcoming C++ standard does say something about threading I don't know if it deals with this issue. Andrew --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:[email protected]
