code: def _poll_for_update(self):
      
      test, test_state = _get_executing_test()
  
      if test is None:
        time.sleep(_WAIT_FOR_EXECUTING_TEST_POLL_S)
        return
  
      state_dict, event = self._to_dict_with_event(test_state)
      self._update_callback(state_dict)
  
      plug_manager = test_state.plug_manager
      plug_events = [
          plug_manager.get_plug_by_class_path(plug_name).asdict_with_event()[1]
          for plug_name in plug_manager.get_frontend_aware_plug_names()
      ]
      events = [event] + plug_events
  
      # Wait for the test state or a plug state to change, or for the previously
      # executing test to finish.
      while not _wait_for_any_event(events, _CHECK_FOR_FINISHED_TEST_POLL_S):
        new_test, _ = _get_executing_test()
        if test != new_test:
          break
docs: Call the callback with the current test state, then wait for a change.