<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _update_trial_queue(self, blocking=False, timeout=600):
 """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. """

        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)