Hi David At what point do you free the list? At the end of Execute() or in an OnTerminate() event handler?
Todd. ----- Original Message ----- From: "David McNeill" <[EMAIL PROTECTED]> To: "Multiple recipients of list delphi" <[EMAIL PROTECTED]> Sent: Thursday, September 11, 2003 4:01 PM Subject: RE: [DUG]: TStringList or Memory error. > Indy HTTP creates a new thread for each web request. > > At the start of that new thread I create the stringlist, then call the > processing procedure that use it. > > What gets me is how it can work for 700 cycles (ie the code has to be > correct), then tip over. > > It must be a more dynamic memory allocation related issue, I just have > no idea how to debug that. > > > > > > > > David McNeill > McPond eCommerce Software > [EMAIL PROTECTED] > Buchanan Road > Franklin > New Zealand > Phone 09 292 7212 > > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On > Behalf Of Phil Middlemiss > Sent: Thursday, 11 September 2003 1:42 p.m. > To: Multiple recipients of list delphi > Subject: Re: [DUG]: TStringList or Memory error. > > If the stringlist belongs to the thread then you shouldn't need a > critical > section. But if you are accessing the StringList in an event from the > Indy > components when data arrives then you may still need a critical section > - I > can't remember if the Indy components use the same or a different thread > for > each event notification. > > Phil. > ----- Original Message ----- > From: "David McNeill" <[EMAIL PROTECTED]> > To: "Multiple recipients of list delphi" <[EMAIL PROTECTED]> > Sent: Thursday, September 11, 2003 1:30 PM > Subject: RE: [DUG]: TStringList or Memory error. > > > > Thanks for the pointers... > > > > 1) Are you using interfaces? If so, check that the referenced object > > hasn't > > been relased. > > > > .. No interfaces > > > > > > 2) Have you got your code that references the stringlist wrapped up in > a > > critical section? > > > > .. Shouldn't need to because it's threadvar - the thread can write to > > the string list any time it feels like it, it has it's own instance of > > the stringlist. > > Is my assumption correct? > > > > > > 3) Are you trying to access an item in the list that doesn't exist > (eg, > > MyList[4] when MyList only contains 4 items - remember that > TStringList > > is 0 > > based)? > > > > .. Only using .add Generally I then use .text then .clear , so no, > > not an indexing issue. > > > > > > > > > > > > > > > > These are probably all obvious ones you have already checked, but you > > didn't > > say what you had checked or not. > > > > Phil. > > ----- Original Message ----- > > From: "David McNeill" <[EMAIL PROTECTED]> > > To: "Multiple recipients of list delphi" <[EMAIL PROTECTED]> > > Sent: Thursday, September 11, 2003 11:56 AM > > Subject: [DUG]: TStringList or Memory error. > > > > > > > This is a nasty one I can't get to the bottom of, so any clues or > tips > > > would be appreciated. > > > > > > Fundamental problem: Access Violation on accessing a stringlist. > > > > > > Situation: Database update process iterates 700+ times, doing the > same > > > thing, before tipping over. > > > > > > It's like the tstringlist "disappears" for some unknown reason. > > > > > > I use the same method in thousands of other lines, and never fails. > > > > > > Breaks on two servers at the customers place, but not on my dev > > server. > > > > > > > > > Multi-threaded tray app, using Indy http server. > > > > > > > > > Snips: > > > > > > > > > Main.pas > > > threadvar > > > tlResult:TStringlist; > > > > > > Main.pas > > > Procedure TimerExecute; > > > Tlresult:=tstringlist.create; > > > > > > DoDatabaseProcessing; > > > > > > > > > Database.pas > > > Procedure DoDatabaseProcessing; > > > While not database.eof do begin > > > .. hundreds of lines > > > tlresult.add('Ok: Processed item '+IntToStr(RecordNo)); // access > > > violation > > > end; > > > > > > > > > > > > > > > I tried descending tstringlist and putting in a log on > > BeforeDestruction > > > , but it does not appear the stringlist is explicitly being > destroyed. > > > > > > It is more like something else is clobbering it's memory, and it is > > > "disappearing" at some point. > > > > > > Any help appreciated. > > > > > > > > > David McNeill > > > McPond eCommerce Software > > > [EMAIL PROTECTED] > > > Buchanan Road > > > Franklin > > > New Zealand > > > Phone 09 292 7212 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------ > > -- > > - > > > New Zealand Delphi Users group - Delphi List - > > [EMAIL PROTECTED] > > > Website: http://www.delphi.org.nz > > > To UnSub, send email to: [EMAIL PROTECTED] > > > with body of "unsubscribe delphi" > > > Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/ > > > > > > > > > > ------------------------------------------------------------------------ > > --- > > New Zealand Delphi Users group - Delphi List - > [EMAIL PROTECTED] > > Website: http://www.delphi.org.nz > > To UnSub, send email to: [EMAIL PROTECTED] > > with body of "unsubscribe delphi" > > Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/ > > > > > > > > > ------------------------------------------------------------------------ > -- > - > > New Zealand Delphi Users group - Delphi List - > [EMAIL PROTECTED] > > Website: http://www.delphi.org.nz > > To UnSub, send email to: [EMAIL PROTECTED] > > with body of "unsubscribe delphi" > > Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/ > > > > > ------------------------------------------------------------------------ > --- > New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED] > Website: http://www.delphi.org.nz > To UnSub, send email to: [EMAIL PROTECTED] > with body of "unsubscribe delphi" > Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/ > > > > -------------------------------------------------------------------------- - > New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED] > Website: http://www.delphi.org.nz > To UnSub, send email to: [EMAIL PROTECTED] > with body of "unsubscribe delphi" > Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/ --------------------------------------------------------------------------- New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED] Website: http://www.delphi.org.nz To UnSub, send email to: [EMAIL PROTECTED] with body of "unsubscribe delphi" Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/
