Hello Henrik,

I have no idea anymore. As test I made a little application in Delphi.
Please download it at http://www.mestdagh.biz/test/smtptest.zip and tell
me if you have it (then I can delete it from server).

It does more or less the same as you do with the form, just creates an
object that connect to smtp server, receive banner, send quit and
destroy itself when answer from quit, or timed out. I'm curious if this
works on the offending machines.

---
Rgds, Wilfried [TeamICS]
http://www.overbyte.be/eng/overbyte/teamics.html
http://www.mestdagh.biz

Friday, December 15, 2006, 14:19, Henrik wrote:

> 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