Exemple #1
0
  @Override
  public void run() {
    if (tasks.isEmpty()) return;

    int shopsProcessed = 0;
    while (shopsProcessed < shopsPerTick) {
      SearchTask task = tasks.pollLast();
      if (task == null) break;
      shopsProcessed += task.run(shopsPerTick - shopsProcessed);
      if (task.isFinished()) {
        task.onComplete();
      } else {
        tasks.push(task);
      }
    }
  }