docs: @Override
      protected void updateCount() {
          // set counter to the actual value, rather than to try and
          // keep track with a seperate variable.
          // if there are no key left, then mark this selector for deletion,
          // if it is not the first selector, which we always want active.
          // This counter must only be updated by the selector thread,
          // which allows us to omit synchronized logic.
          // there can be timing windows where before we signal a deletion,
          // another request comes in, but the timeout logic will insure
          // that we don't delete an active selector.
          int selectorCount = selector.keys().size();
          if (selectorCount == 0 && countIndex != 0) {
              wqm.updateCount(countIndex, WorkQueueManager.CS_DELETE_IN_PROGRESS, channelType);
          } else {
              waitingToQuit = false; // if any keys, don't let selector die
              wqm.updateCount(countIndex, selectorCount, channelType);
          }
      }