class FairQueue implements BlockingQueue<E> {

   @Override
   public E peek ()
   {
      if (count.get () == 0)
      {
         return null;
      }
      final ReentrantLock lock = this.lock;
      lock.lock ();
      try
      {
         return getNext (false);
      }
      finally
      {
         lock.unlock ();
      }
   }

   public  FairQueue();

}