def _watcher_thread(self):
        """
        Periodically attempt to upload the crash reports. If any upload method is successful, delete the saved reports.
        """
        while 1:
            time.sleep(self.check_interval)
            if not self._watcher_running:
                break
            self.logger.info('CrashReporter: Attempting to send offline reports.')
            self.submit_offline_reports()
            remaining_reports = len(self.get_offline_reports())
            if remaining_reports == 0:
                break
        self._watcher = None
        self.logger.info('CrashReporter: Watcher stopped.')