anchor.diff:    Repeat
       continue := inherited TryEnter;
       if (Not continue) then begin
  -      If (not logged) And ((FStartedTimestamp>0) And ((FStartedTimestamp+1000)<TPlatform.GetTickCount)) 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.GetTickCount-FStartedTimestamp) );
  +          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.GetTickCount - startTC) );
  +    TLog.NewLog(ltdebug,Classname,'ENTER Critical section '+IntToHex(PtrInt(Self),8)+' '+Name+' elapsed milis: '+IntToStr(TPlatform.GetElapsedMilliseconds(startTC)) );
     end;
     FCounterLock.Acquire;
     try
  
positive.code:     FCounterLock.Release;
    end;
    FCurrentThread := TThread.CurrentThread.ThreadID;
    FStartedTimestamp := TPlatform.GetTickCount;
    inherited;
  end;
  {$ENDIF}
  
  
negative.code: procedure TPCCriticalSection.Release;
  begin
    FCurrentThread := 0;
    FStartedTickCount := 0;
    inherited;
  end;
  
  