code: def _get_next_trial(self):
          
          trials_done = all(trial.is_finished() for trial in self._trials)
          wait_for_trial = trials_done and not self._search_alg.is_finished()
          self._update_trial_queue(blocking=wait_for_trial)
          with warn_if_slow("choose_trial_to_run"):
              trial = self._scheduler_alg.choose_trial_to_run(self)
          return trial
docs: Replenishes queue.
  
          Blocks if all trials queued have finished, but search algorithm is
          still not finished.