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;


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

Reply via email to