I thought I had publicly declared what I wanted to do. Here is the example code again for ease of reference:
Type Class TTest(TObject) public nflag : integer ; sflag : string[30] end; Gui Thread gtest := TTest.Create ; Thread #1 - Constantly changing values while true do begin gtest.nflag := Random($FFFFFFFF) ; gtest.sflag := inttostr(gtest.nflag) ; end; Thread #2 - Constantly Comparing values While true do begin if gtest.nflag = 777888 then begin break ; end; //Test string matching instead of integer matching if gtest.sflag = '123456' then begin LaunchSpaceShuttle(gtest) ; end; end; Will this code be thread safe in terms of the gtest.sflag = '123456' line never throw an exception because it is referring to stable memory that is always less than 31 bytes. Cheers, marco On 6/4/2014 3:27 PM, Mattias Gaertner wrote: > On Wed, 04 Jun 2014 15:03:31 -0400 > "Saunders, Rich" <greym...@mykolab.com> wrote: > >> [...] >> Whether static variables are more or less thread safe is for you to >> decide since you know what you are doing with them. I don't think either >> short strings or Strings are inherently more or less thread safe. It >> depends on what you do with them. > > No data is "thread safe". Only code can be thread safe. > > Mattias > _______________________________________________ > fpc-pascal maillist - fpc-pascal@lists.freepascal.org > http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal > _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal