docs: def run(self, blocking: bool=True):
          """
          Run the internal control loop.
          Args:
              blocking (bool): Defaults to `True`. If set to `False`, will
                  intialize a thread to run the control loop.
          Raises:
              RuntimeError: If called and not using the internal control loop
                  via `self._run_control_loop`, set in the intializer of the
                  class
          """
          if not self._run_control_loop:
              err = ("`run` called, but not using the internal control loop. Use"
                     " `start` instead")
  
              raise RuntimeError(err)
  
          self._setup()
          self._heartbeat_reciever.start()
  
          if blocking:
              return self.loop.start()
          else:
              self._run_thread = _threading.Thread(target=self.loop.start,
                                                   daemon=True)
  
              self._thread.run()