Hi Wilfried!

Here are the results when tracing all occurrences of WSocketGCount in the
ICS code. I tested the both the original example code and the one that
manually loads/unloads winsock, on two different computers.

Please let me know if I can do some other tracing that could shed light on
the problem...

Best Regards
Henrik



ON THE EXAMPLE COMPUTER WHERE THE ERROR SHOWS
=============================================

Original code that hangs
------------------------
(Creating smtpTestForm from main form, pressing connect, close smtpTestForm,
release smtpTestForm from main form)
constructor TCustomWSocket.Create: 0 -> 1
procedure SafeIncrementCount: 1 -> 2
procedure SafeDecrementCount: 2 -> 1
procedure SafeIncrementCount: 1 -> 2
procedure SafeDecrementCount: 2 -> 1
procedure SafeIncrementCount: 1 -> 2
procedure SafeDecrementCount: 2 -> 1
destructor TCustomWSocket.Destroy: 1 -> 0
procedure WSocketUnloadWinsock: 0
destructor TCustomWSocket.Destroy: 0

(Creating smtpTestForm from main form, pressing connect, hang...)
constructor TCustomWSocket.Create: 0 -> 1
procedure SafeIncrementCount: 1 -> 2
procedure SafeDecrementCount: 2 -> 1
procedure SafeIncrementCount: 1 -> 2
procedure SafeDecrementCount: 2 -> 1
procedure SafeIncrementCount: 1 -> 2
procedure SafeDecrementCount: 2 -> 1
-!- The application hangs -!-


Manually ForceLoadWinsock and CancelForceLoadWinsock
----------------------------------------------------
(ForceLoadWinsock on main form creation, Creating smtpTestForm from main
form, pressing connect, close smtpTestForm, release smtpTestForm from main
form)
procedure WSocketForceLoadWinsock 0 -> 1
constructor TCustomWSocket.Create: 1 -> 2
procedure SafeIncrementCount: 2 -> 3
procedure SafeDecrementCount: 3 -> 2
procedure SafeIncrementCount: 2 -> 3
procedure SafeDecrementCount: 3 -> 2
procedure SafeIncrementCount: 2 -> 3
procedure SafeDecrementCount: 3 -> 2
destructor TCustomWSocket.Destroy: 2 -> 1
destructor TCustomWSocket.Destroy: 1

(Creating smtpTestForm from main form, pressing connect, close smtpTestForm,
release smtpTestForm from main form, CancelForceLoadWinsock in
mainform.OnCloseQuery)
constructor TCustomWSocket.Create: 1 -> 2
procedure SafeIncrementCount: 2 -> 3
procedure SafeDecrementCount: 3 -> 2
procedure SafeIncrementCount: 2 -> 3
procedure SafeDecrementCount: 3 -> 2
procedure SafeIncrementCount: 2 -> 3
procedure SafeDecrementCount: 3 -> 2
destructor TCustomWSocket.Destroy: 2 -> 1
destructor TCustomWSocket.Destroy: 1
procedure WSocketCancelForceLoadWinsock: 1 -> 0
procedure WSocketUnloadWinsock: 0
Wsocket finalization: 0
procedure WSocketUnloadWinsock: 0 





ON THE COMPUTER WHERE THE ERROR DO NOT SHOW
===========================================

Original code that hangs on some computers
-----------------------------------------
(Creating smtpTestForm from main form, pressing connect, close smtpTestForm,
release smtpTestForm from main form)
constructor TCustomWSocket.Create: 0 -> 1
procedure SafeIncrementCount: 1 -> 2
procedure SafeDecrementCount: 2 -> 1
procedure SafeIncrementCount: 1 -> 2
procedure SafeDecrementCount: 2 -> 1
procedure SafeIncrementCount: 1 -> 2
procedure SafeDecrementCount: 2 -> 1
destructor TCustomWSocket.Destroy: 1 -> 0
procedure WSocketUnloadWinsock: 0
destructor TCustomWSocket.Destroy: 0

(Creating smtpTestForm from main form, pressing connect, close smtpTestForm,
release smtpTestForm from main form)
constructor TCustomWSocket.Create: 0 -> 1
procedure SafeIncrementCount: 1 -> 2
procedure SafeDecrementCount: 2 -> 1
procedure SafeIncrementCount: 1 -> 2
procedure SafeDecrementCount: 2 -> 1
procedure SafeIncrementCount: 1 -> 2
procedure SafeDecrementCount: 2 -> 1
destructor TCustomWSocket.Destroy: 1 -> 0
procedure WSocketUnloadWinsock: 0
destructor TCustomWSocket.Destroy: 0
Wsocket finalization: 0
procedure WSocketUnloadWinsock: 0


Manually ForceLoadWinsock and CancelForceLoadWinsock
----------------------------------------------------
(ForceLoadWinsock on main form creation, Creating smtpTestForm from main
form, pressing connect, close smtpTestForm, release smtpTestForm from main
form)
procedure WSocketForceLoadWinsock 0 -> 1
constructor TCustomWSocket.Create: 1 -> 2
procedure SafeIncrementCount: 2 -> 3
procedure SafeDecrementCount: 3 -> 2
procedure SafeIncrementCount: 2 -> 3
procedure SafeDecrementCount: 3 -> 2
procedure SafeIncrementCount: 2 -> 3
procedure SafeDecrementCount: 3 -> 2
destructor TCustomWSocket.Destroy: 2 -> 1
destructor TCustomWSocket.Destroy: 1

(Creating smtpTestForm from main form, pressing connect, close smtpTestForm,
release smtpTestForm from main form, CancelForceLoadWinsock in
mainform.OnCloseQuery)
constructor TCustomWSocket.Create: 1 -> 2
procedure SafeIncrementCount: 2 -> 3
procedure SafeDecrementCount: 3 -> 2
procedure SafeIncrementCount: 2 -> 3
procedure SafeDecrementCount: 3 -> 2
procedure SafeIncrementCount: 2 -> 3
procedure SafeDecrementCount: 3 -> 2
destructor TCustomWSocket.Destroy: 2 -> 1
destructor TCustomWSocket.Destroy: 1
procedure WSocketCancelForceLoadWinsock: 1 -> 0
procedure WSocketUnloadWinsock: 0
Wsocket finalization: 0
procedure WSocketUnloadWinsock: 0






-----Ursprungligt meddelande-----
Från: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] För
Wilfried Mestdagh
Skickat: den 14 december 2006 16:31
Till: ICS support mailing
Ämne: Re: [twsocket] Freeze when using smtp after recreating itsparentform

Hello Henrik,

What you could do is set in IDE some breakpoints at the places the dll is
loaded / unloaded. To see if this mechanism is working fine on the offending
machines. It is a counter that increment / decrement to decide if winsock
should be load or unload.
-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to