code: @Override
  	public E poll(long timeout, TimeUnit unit) throws InterruptedException {
  		E e = queue.poll(timeout, unit);
  		if (e != null){
  			signalSizeReduced();
  		}
  		return e;
  	}
docs: /* (non-Javadoc)
  @see java.util.concurrent.BlockingQueue#poll(long, java.util.concurrent.TimeUnit)