anchor.diff:      FCounterLock.Release;
     end;
     FCurrentThread := TThread.CurrentThread.ThreadID;
  -  FStartedTimestamp := TPlatform.GetTickCount;
  -  inherited;
  +  FStartedTickCount := TPlatform.GetTickCount;
   end;
   {$ENDIF}
   
  
positive.code: procedure TPCCriticalSection.Release;
  begin
    FCurrentThread := 0;
    FStartedTimestamp := 0;
    inherited;
  end;
  
  
negative.code:   Repeat
      continue := inherited TryEnter;
      if (Not continue) then begin
        If (not logged) And (TPlatform.GetElapsedMilliseconds(startTC)>1000) then begin
          logged := true;
          TLog.NewLog(ltdebug,ClassName,'ALERT Critical section '+IntToHex(PtrInt(Self),8)+' '+Name+
            ' locked by '+IntToHex(FCurrentThread,8)+' waiting '+
            IntToStr(FWaitingForCounter)+' elapsed milis: '+IntToStr(TPlatform.GetElapsedMilliseconds(startTC)));
          continue := true;
          inherited;
        end else sleep(1);
      end;
    Until continue;
    if (logged) then begin
      TLog.NewLog(ltdebug,Classname,'ENTER Critical section '+IntToHex(PtrInt(Self),8)+' '+Name+' elapsed milis: '+IntToStr(TPlatform.GetElapsedMilliseconds(startTC)) );
    end;
    FCounterLock.Acquire;
    try
  