code: private boolean isContinueWork() {
      long maxSpoutPending = TypeUtils.getLong(config.get(Config.TOPOLOGY_MAX_SPOUT_PENDING));
      return helper.getTopologyState().equals(TopologyAPI.TopologyState.RUNNING)
          &&
          ((!ackEnabled && collector.isOutQueuesAvailable())
              ||
              (ackEnabled
                  && collector.isOutQueuesAvailable()
                  && collector.numInFlight() < maxSpoutPending)
              ||
              (ackEnabled && !streamInQueue.isEmpty()));
    }
docs: Check whether we still need to do more work.
  When the topology state is in RUNNING:
  1. If the out Queue is not full and ack is not enabled, we could just wake up next time
  to produce more tuples and push to the out Queue
  <p>
  2. It the out Queue is not full but the ack is enabled, we also need to make sure the
  tuples waiting smaller than msp
  <p>
  3. If there are more to read, we will wake up itself next time when it doWait()
  
  @return true Wake up itself directly in next looper.doWait()