anchor.diff:  begin
     FLocker.Enter;
     try
  -    if FHead = nil then Exit;
  -
  -    while FHead.Next <> nil do
  -    begin
  -      ANext := FHead.Next;     
  -      
  +    while FHead <> nil do
  +    begin
  +      ANext := FHead.Next;
         queueDataPool.Push(FHead);
         FHead := ANext;
  -    end;
  -
  +    end; 
       FCount := 0;
     finally
       FLocker.Leave;
  
positive.code: var
    ANext: PQueueData;
  begin
    if FHead = nil then Exit;
  
    while FHead.Next <> nil do
    begin
      ANext := FHead.Next;
  
      queueDataPool.Push(FHead);
      FHead := ANext;
    end;
  
    FCount := 0;
  
  end;
  
  procedure TSimpleQueue.freeDataObject;
  var
    lvData:Pointer;
  begin
  
negative.code:     /// </summary>
      procedure EnQueue(AData: Pointer);
  
      /// <summary>
      ///  invoke Only Data Pointer is TObject
      /// </summary>
  