Skip NextBus update if integration is still loading (#123564)
* Skip NextBus update if integration is still loading Fixes a race between the loading thread and update thread leading to an unrecoverable error * Use async_at_started * Use local copy of _route_stops to avoid NextBus race condition * Update homeassistant/components/nextbus/coordinator.py --------- Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
This commit is contained in:
parent
e3287b93a5
commit
04b0760e27
1 changed files with 4 additions and 2 deletions
|
@ -50,13 +50,15 @@ class NextBusDataUpdateCoordinator(DataUpdateCoordinator):
|
|||
|
||||
async def _async_update_data(self) -> dict[str, Any]:
|
||||
"""Fetch data from NextBus."""
|
||||
self.logger.debug("Updating data from API. Routes: %s", str(self._route_stops))
|
||||
|
||||
_route_stops = set(self._route_stops)
|
||||
self.logger.debug("Updating data from API. Routes: %s", str(_route_stops))
|
||||
|
||||
def _update_data() -> dict:
|
||||
"""Fetch data from NextBus."""
|
||||
self.logger.debug("Updating data from API (executor)")
|
||||
predictions: dict[RouteStop, dict[str, Any]] = {}
|
||||
for route_stop in self._route_stops:
|
||||
for route_stop in _route_stops:
|
||||
prediction_results: list[dict[str, Any]] = []
|
||||
try:
|
||||
prediction_results = self.client.predictions_for_stop(
|
||||
|
|
Loading…
Add table
Reference in a new issue