Thanks for the quick reply. That is what would be my next step. I don't
like it because this component set seems to be working fine and it is
likely something I've done that broke it.

On Sat, May 11, 2013 at 8:05 AM, Olivier Sannier <> wrote:

> Hello,
> I've seen this happen with other component sets because the components as
> well.
> The situation triggering this is yet unclear to me, but it is a
> combination of putting the component on a form and letting the application
> delete it.
> It appears, but I'm not quite sure, that finalization of the main form is
> done AFTER all units are finalized while it used to be the other way round.
> To circumvent this, I set the global variable to nil and test for it in
> the appropriate location.
> So basically, to be on the safe side, ICS should set SslCritSect to 0 when
> finalizing and test for this value in UnloadSSL.
> On 11/05/2013 15:42, John Reid wrote:
>> 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.
> --
> To unsubscribe or change your settings for TWSocket mailing list
> please goto 
> Visit our website at


*John Reid*

*Software Development Manager*
6415 South 3000 East
Suite 150
Salt Lake City, UT  84121
Phone: 801.305.3995
Fax: 801.521.6222

To unsubscribe or change your settings for TWSocket mailing list
please goto
Visit our website at

Reply via email to