code: def _scheduled_check_for_summaries(self):
          
          if self._analysis_process is None:
              return
          # handle time out
          timed_out = time.time() - self._analyze_start_time > self.time_limit
          if timed_out:
              self._handle_results('Analysis timed out but managed\n'
                                   ' to get lower turn results.',
                                   'Analysis timed out with no results.')
              return
          # handle standard completion
          try:
              self._analysis_process.join(0.001)
          except AssertionError:
              pass  # if some timing issue with closed process, just continue
          if not self._analysis_process.is_alive():
              self._handle_results('Completed analysis.',
                                   'Unable to find the game on screen.')
              return
          #finally, if it's still alive, then come back later
          self._base.after(self._POLL_PERIOD_MILLISECONDS,
                           self._scheduled_check_for_summaries)
docs: Present the results if they have become available or timed out.