Use call_soon_threadsafe in token updater of Ring (#106984)

Use call_soon_threadsafe in token update of Ring
This commit is contained in:
Jan-Philipp Benecke 2024-01-04 01:59:02 +01:00 committed by GitHub
parent 4f213f6df3
commit 0183affc7c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -4,7 +4,6 @@ from __future__ import annotations
import asyncio import asyncio
from collections.abc import Callable from collections.abc import Callable
from datetime import timedelta from datetime import timedelta
from functools import partial
import logging import logging
from typing import Any from typing import Any
@ -16,7 +15,6 @@ from homeassistant.core import HomeAssistant, ServiceCall, callback
from homeassistant.exceptions import ConfigEntryAuthFailed from homeassistant.exceptions import ConfigEntryAuthFailed
from homeassistant.helpers import device_registry as dr from homeassistant.helpers import device_registry as dr
from homeassistant.helpers.event import async_track_time_interval from homeassistant.helpers.event import async_track_time_interval
from homeassistant.util.async_ import run_callback_threadsafe
from .const import ( from .const import (
DEVICES_SCAN_INTERVAL, DEVICES_SCAN_INTERVAL,
@ -41,14 +39,11 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
def token_updater(token): def token_updater(token):
"""Handle from sync context when token is updated.""" """Handle from sync context when token is updated."""
run_callback_threadsafe( hass.loop.call_soon_threadsafe(
hass.loop, hass.config_entries.async_update_entry,
partial( entry,
hass.config_entries.async_update_entry, data={**entry.data, CONF_TOKEN: token},
entry, )
data={**entry.data, CONF_TOKEN: token},
),
).result()
auth = ring_doorbell.Auth( auth = ring_doorbell.Auth(
f"{APPLICATION_NAME}/{__version__}", entry.data[CONF_TOKEN], token_updater f"{APPLICATION_NAME}/{__version__}", entry.data[CONF_TOKEN], token_updater