code: @Override
      public T poll() {
          T old = null;
  
          boolean expedited = false;
  
          synchronized (this) {
              if (numberOfUsedExpeditedSlots.get() > 0) {
                  old = expeditedExtract();
                  numberOfUsedExpeditedSlots.getAndDecrement();
                  expedited = true;
              } else if (numberOfUsedSlots.get() > 0) {
                  old = extract();
                  numberOfUsedSlots.getAndDecrement();
              }
          }
  
          if (old != null) {
              //TODO if expedited is added for put or offer with timeout add notification here
              if (!expedited)
                  notifyPut_();
          }
  
          return old;
      }
docs: /*
  @awisniew - ADDED
  
  (non-Javadoc)
  
  @see java.util.Queue#poll()