----- Original Message ----- 
From: "Cosmin Prund" <[EMAIL PROTECTED]>
To: "ICS support mailing" <twsocket@elists.org>
Sent: Monday, November 20, 2006 10:16 AM
Subject: Re: [twsocket] What might cause ICS to fail and we need to be aware 
of?


> Francois Piette wrote:
>> I don't know of ANY component where it is safe to call the message pump 
>> from
>> one of its event without knowing what happend. Even for a simple
>> TButton.OnClick, you can get strange result if you call the message pump
>> within the OnClick handler because the handler is re-entered. The problem 
>> is
>> more visible with TWSocket since it is likely the event is always 
>> reentered
>> because of the high rate network I/O has.
>>
>>
> That's not entirely true. Delphi's GUI model is event-driven so I'm
> willing to bet ANY call to Application.ProcessMessages will be made as a
> result of handling an message or event. And I'm willing to bet most
> calls to Application.ProcessMessages can be traced to ether an
> TButton.OnClick event or a menu item's OnClick! And if it's such a big
> issue for ICS, why isn't there a simple 5-line-of-code test that would
> raise an exception if any code is re-entered?
>

Why ? It is correct that it should enter that event. Incorrect use of 
processmessage lead to the incorrect moment of entry!

> Besides, I'm asking about such behavior because of the way the THttpCli
> component behaves for me. If you remember one of my earlier questions, I
> had lots of problems with the component failing to connect to my HTTP
> server. Using Ethereal I determined the connection is poor (lost
> packets, duplicate ACK's) BUT the component still averages an too high
> number of failed connections. I don't think I've had 5 consecutive
> "sessions" where no connections timed-out. And I'm saying the failure
> rate is too high because I never saw such a problem using my web
> browser. Not once! And after the time out expires and the component
> "aborts" and restarts it's Get, it usually finishes very very quickly.
> So I need to ask: Is there some other obvious thing I'm missing, like a
> call to Application.ProcessMessage? What else should I be looking for.
>
So did you trace you browser then ? My gues is that there are as many 
failures but they are handled by the browser. You could do that as well in 
you application. It is not the responsibility of the httpcli component.

repeat
   try
     xxx.get
     callok := true
   except
     inc(tried)
   end
until callok or tried>5 

-- 
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