code: def run(self):
          
          try:
              self.owner.start_event()
              while True:
                  while not self.incoming:
                      time.sleep(0.01)
                  while self.incoming:
                      command = self.incoming.popleft()
                      if command is None:
                          raise StopIteration()
                      command()
          except StopIteration:
              pass
          self.owner.stop_event()
docs: The actual event loop.
  
          Calls the ``owner``'s :py:meth:`~Component.start_event` method,
          then calls its :py:meth:`~Component.new_frame_event` and
          :py:meth:`~Component.new_config_event` methods as required until
          :py:meth:`~Component.stop` is called. Finally the ``owner``'s
          :py:meth:`~Component.stop_event` method is called before the
          thread terminates.