code: @Trivial
      int forceVariation(int poolSize, int calculatedAdjustment, long intervalCompleted, boolean lowTput) {
          // 08/08/2012: Count intervals without change
          if (calculatedAdjustment == 0 && intervalCompleted != 0) {
              consecutiveNoAdjustment++;
          } else {
              consecutiveNoAdjustment = 0;
          }
  
          int forcedAdjustment = calculatedAdjustment;
          if (consecutiveNoAdjustment >= MAX_INTERVALS_WITHOUT_CHANGE) {
              consecutiveNoAdjustment = 0;
              if (flipCoin() && poolSize + poolIncrement <= maxThreads) {
                  // don't force an increase in lowTput situation
                  if (!lowTput) {
                      forcedAdjustment = poolIncrement;
                      if (tc.isEventEnabled()) {
                          Tr.event(tc, "force variation", (" forced increase: " + forcedAdjustment));
                      }
                  }
              } else if ((poolSize - poolDecrement) >= Math.max(coreThreads, hangBufferPoolSize)) {
                  forcedAdjustment = -poolDecrement;
                  if (tc.isEventEnabled()) {
                      Tr.event(tc, "force variation", (" forced decrease: " + forcedAdjustment));
                  }
              }
          }
  
          return forcedAdjustment;
      }
docs: Force an adjustment to the thread pool size if the change wouldn't shrink the
  pool to zero or grow it beyond {@link maxThreads}.
  
  @param poolSize the current pool size
  @param calculatedAdjustment the adjustment calculated by grow and shrink scores
  @param intervalCompleted the number of tasks completed in the current interval
  @param lowTput an indicator that tput is low relative to poolsize, and queue is empty
  
  @return the pool adjustment size to use