code: def run(self):
          
          if self.probes is None:
              self._stop = True
          while True:
  
              if self._stop:
                  break
  
              self.probes_values = {
                  instrument_name:
                      {probe_name: probe_instance.value for probe_name, probe_instance in probe.items()}
                  for instrument_name, probe in self.probes.items()
                  }
  
              self.updateProgress.emit(1)
  
              self.msleep(int(1e3*self.refresh_interval))
docs: this is the actual execution of the ReadProbes thread: continuously read values from the probes