> I've changed .CloseAsync to .Abort and nothing changed :-( Still got
> access violation. Access violation only occures if Timer2 is
> Enabled. Somewhere in this code (Even without calling abort):
>
>> > for i:=HTTPCliList.Count - 1 downto 0 do
>> > begin
>> >  todestroy:=THTTPCLI(HTTPCLILIST[i]);
>> >  if todestroy.Tag = -1 then
>> >   begin
>> >    HTTPCliList.Delete(i);
>> >    todestroy.Destroy;
>> >    httpcli_count:=httpcli_count-1;
>> >   end;
>> > end;
>> > end;

With the debugger, you'll be able to pin-point exactly where the AV occur.
Try changing the logic as I said:

for i:=HTTPCliList.Count - 1 downto 0 do begin
  todestroy:= HTTPCLILIST[i] as THTTPCLI;
  if todestroy.Tag = -1 then
    todestroy.Abort;
end;

Then in OnRequestDone event, handle as if it where success but of course 
don't process data.
--
[EMAIL PROTECTED]
http://www.overbyte.be

> ---- Wiadomość Oryginalna ----
> Od: Francois PIETTE <[EMAIL PROTECTED]>
> Do: ICS support mailing <twsocket@elists.org>
> Data: Sun, 18 Dec 2005 11:35:57 +0100
> Temat: Re: [twsocket] [THTTPCLI] What am i doing wrong? ;-(
>
>> > Whats wrong? Why do i get access violation?
>>
>> Probably because you use CloseAsync before destroying ?
>> In timer2 event handler, you could simply call Abort to make the
> component
>> stop the work in progress. Then you'll receive an OnRequestDone
> just like
>> the component had done the operation, checking the status code you
> will know
>> it failed.
>> --
>> [EMAIL PROTECTED]
>> http://www.overbyte.be
>>
>>
>> ----- Original Message ----- 
>> From: "Ann" <[EMAIL PROTECTED]>
>> To: "ICS support mailing" <twsocket@elists.org>
>> Sent: Sunday, December 18, 2005 11:08 AM
>> Subject: [twsocket] [THTTPCLI] What am i doing wrong? ;-(
>>
>>
>> > Ok I changed strategy and creating components dynamicly for
> every
>> > connection. Everything works great but still cant implement
> timeout.
>> > .. why would i need timeout? Because at the end some Clients
> arent
>> > destroyed because connections are still alive waiting for some
> data.
>> >
>> > HTTPCliList is TObjectList
>> >
>> > ----------------
>> > In Timer1 i got:
>> > ----------------
>> >
>> > while (httpcli_count < 50) and (memo3.Lines.Count>0) do
>> > begin
>> >  if memo3.Lines.Count > 0 then
>> >   begin
>> >    utworzono:=utworzono+1;
>> >    http:=THttpCli.Create(self);
>> >    http.FollowRelocation := false;
>> >    http.NoCache := true;
>> >    http.OnDocData := HTTPCli2.OnDocData;
>> >    http.OnSessionConnected := HTTPCli2.OnSessionConnected;
>> >    http.OnRequestDone := HTTPCli2.OnRequestDone;
>> >    http.OnSocksError := HTTPCli2.OnSocksError;
>> >    http.RcvdStream:=TMemoryStream.Create;
>> >    http.url := 'http://google.pl';
>> >    http.Tag := (GetTickCount div 1000) mod 1000;
>> >    HTTPCliList.Add(http);
>> >    SetProxy(http);
>> >    http.GetASync;
>> >  end;
>> > end;
>> >
>> > -----------------
>> > On OnRequestDone:
>> > -----------------
>> >
>> > <some code that works fine>
>> > THTTPCli(Sender).Tag := -1;
>> >
>> > -----------------
>> > In Timer2:
>> > -----------------
>> >
>> > for i:=HTTPCliList.Count - 1 downto 0 do
>> > begin
>> >  todestroy:=THTTPCLI(HTTPCLILIST[i]);
>> >  if abs(noww-THTTPCLI(HTTPCLILIST[i]).Tag) > 30 then
>> >   THTTPCLI(HTTPCLILIST[i]).CloseAsync;
>> >  if todestroy.Tag = -1 then
>> >   begin
>> >    HTTPCliList.Delete(i);
>> >    todestroy.Destroy;
>> >    httpcli_count:=httpcli_count-1;
>> >   end;
>> > end;
>> > end;
>> >
>> > -------------------
>> >
>> > Whats wrong? Why do i get access violation? If ill add the code
> from
>> > timer2:
>> >
>> >   HTTPCliList.Delete(HTTPCliList.IndexOf(HTTPCLI(SENDER));
>> >   HTTPCLI(SENDER).Destroy;
>> >   httpcli_count:=httpcli_count-1;
>> >
>> > ... directly in OnRequestDone event, still getting Access
> Violation.
>> >
>> > But without any Timer2 and HTTPCliList everything works fine
> (but no
>> > timeout then).
>> >
>> > Ann
>> >
>> > -- 
>> > 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
>>
>> -- 
>> 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
>>
>
> -- 
> 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 

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