docs: def _data_update(subjects, queue, run_flag):
          """
          Get data from backgound process and notify all subscribed observers with the new data
          """
          while run_flag.running:
              while not queue.empty():
                  data = queue.get()
                  for subject in [s for s in subjects if not s.is_disposed]:
                      subject.on_next(data)
              time.sleep(0.1)