anchor.diff:  
   var
     __dataObjectPool:TBaseQueue;
  +  {$IFDEF MSWINDOWS}
  +  {$ELSE}
  +  {$ENDIF}
   
   {$IFDEF MSWINDOWS}
   const
  
positive.code:     FStateLocker.Leave;
    end;   
  end;
  {$ENDIF}
  
  procedure TSafeLogger.ExecuteLogData(const pvData:TLogDataObject);
  begin
  
negative.code:     /// <summary>
      ///   check worker thread is alive
      /// </summary>
      function WorkersIsAlive(const pvWorker: TLogWorker): Boolean;
  
      procedure CheckForWorker;
      procedure stopWorker(pvTimeOut: Cardinal);
    private
  
      FLogFilter: TLogLevels;
      FStateLocker:TCriticalSection;
      FWorking:Boolean;
      FName: String;
      {$IFDEF MSWINDOWS}
      FMessageHandle: HWND;
      procedure DoMainThreadWork(var AMsg: TMessage);
      {$ENDIF}
      procedure SetWorking(pvWorking:Boolean);
      function isWorking():Boolean;
      procedure DoWork();
  
      procedure incWorkerCount;
      procedure DecWorker(pvWorker: TLogWorker);
    public
      procedure IncErrorCounter;
      procedure IncResponseCounter;
  