private void pollLoop()

in sdk-java/src/main/java/com/spotify/confidence/EventSenderEngineImpl.java [100:128]


  private void pollLoop() {
    Instant latestFlushTime = Instant.now();
    ArrayList<com.spotify.confidence.events.v1.Event> events = new ArrayList<>();
    while (true) {
      final var event = sendQueue.poll();
      if (event != null) {
        if ("manual_flash".equals(event.getEventDefinition())) {
          log.debug("Starting events upload due to manual flush");
          upload(events);
          events = new ArrayList<>();
          continue;
        } else {
          events.add(event);
        }
      } else {
        if (intakeClosed) break;
        LockSupport.parkUntil(Instant.now().plus(maxFlushInterval).toEpochMilli());
      }
      final boolean passedMaxFlushInterval =
          !maxFlushInterval.isZero()
              && Duration.between(latestFlushTime, Instant.now()).compareTo(maxFlushInterval) > 0;
      if (events.size() == maxBatchSize || passedMaxFlushInterval) {
        upload(events);
        events = new ArrayList<>();
        latestFlushTime = Instant.now();
      }
    }
    upload(events);
  }