code: def _update_trial_queue(self, blocking=False, timeout=600):
          
          trials = self._search_alg.next_trials()
          if blocking and not trials:
              start = time.time()
              # Checking `is_finished` instead of _search_alg.is_finished
              # is fine because blocking only occurs if all trials are
              # finished and search_algorithm is not yet finished
              while (not trials and not self.is_finished()
                     and time.time() - start < timeout):
                  logger.info("Blocking for next trial...")
                  trials = self._search_alg.next_trials()
                  time.sleep(1)
  
          for trial in trials:
              self.add_trial(trial)
docs: Adds next trials to queue if possible.
  
          Note that the timeout is currently unexposed to the user.
  
          Args:
              blocking (bool): Blocks until either a trial is available
                  or is_finished (timeout or search algorithm finishes).
              timeout (int): Seconds before blocking times out.