anchor.diff:    FResults := TPerformedOperations.Create();
     FMessages := TStringList.Create;
     FPerformedOperations := TPerformedOperations.Create();
  +  FCriticalSection := TCriticalSection.Create;
  +  FThreadSafe:= false;
   end;
   
   destructor TPerformedOperationResultsAsLog.Destroy;
  
positive.code:     procedure GetMessagesAsStrings(aResults : TStringList);
      function Count : integer;
      procedure Get (const aIndex : integer; out aLevel, aMessage : String; out aTime : TDateTime);
    end;
  
    { TPerformedOperation }
  
negative.code:     FResults : TPerformedOperations;
      FPerformedOperations : TPerformedOperations;
      FMessages : TStringList;
      FCriticalSection : TCriticalSection;
      FThreadSafe : boolean;
  
      function GetMessages: TStrings;
    public
  