docs: def run(self):
          """Run the process.
  
          Iterate the GLib main loop and process the task queue.
          """
          loop = GLib.MainLoop()
          context = loop.get_context()
          while True:
              time.sleep(0.1)
              if context.pending():
                  context.iteration()
                  self._manager[ATTR_POSITION] = self._position()
              try:
                  method, args = self._task_queue.get(False)
                  getattr(self, method)(**args)
              except queue.Empty:
                  pass
              if self.state != STATE_IDLE:
                  continue
              try:
                  uri = self._media_queue.get(False)
                  self.media(uri)
              except queue.Empty:
                  pass