We are using the ICS in an application that emails various entities (not spam). Recently, we ran into an issue where the application would not shut down properly. On some systems it simply persists and on others it reports that an error occurred and it needs to close. This is after it has completed all of its functions. I traced into it and found the Finalization section of OverbyteICSWSocket was executing before the TComponent.DestroyComponent. The Finalization section calls DeleteCriticalSection(SslCritSect). TComponent.DestroyComponent calls the destructor of all its components. Those destructors ultimately call UnloadSsl and this method uses EnterCriticalSection(SslCritSect) and LeaveCriticalSection(SslCritSect), which causes an access violation and prevents the app from closing. This problem has only been seen recently; prior versions of this app with this version of the ICS, the exact same components with the exact same properties, and only slight modification to the code do not hang like this. First, is executing the Finalization before calling the component's destructor the *normal* order? Is there some way to control this order? Second, has anyone else seen this issue? Is there any way to *fix* this short of removing the use of the SslCritSect in UnloadSsl? Thanks in advance for any help.
-- *John Reid* *Software Development Manager* 6415 South 3000 East Suite 150 Salt Lake City, UT 84121 Phone: 801.305.3995 Fax: 801.521.6222 *www.piracle.com* -- To unsubscribe or change your settings for TWSocket mailing list please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be