code: def refresh_signal_handler(self, signo, frame):
          
  
          if signo != signal.SIGUSR1:
              return
  
          for module in self.modules:
              if hasattr(module, "interval"):
                  if module.interval > self.treshold_interval:
                      thread = Thread(target=module.run)
                      thread.start()
                  else:
                      module.run()
              else:
                  module.run()
  
          self.async_refresh()
docs: This callback is called when SIGUSR1 signal is received.
  
          It updates outputs of all modules by calling their `run` method.
  
          Interval modules are updated in separate threads if their interval is
          above a certain treshold value.
          This treshold is computed by :func:`compute_treshold_interval` class
          method.
          The reasoning is that modules with larger intervals also usually take
          longer to refresh their output and that their output is not required in
          'real time'.
          This also prevents possible lag when updating all modules in a row.