Plex websocket callback async cleanup (#40992)

This commit is contained in:
jjlawren 2020-10-01 14:56:15 -05:00 committed by GitHub
parent cad2304968
commit 8c4b571901
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -29,6 +29,7 @@ from homeassistant.const import (
CONF_VERIFY_SSL, CONF_VERIFY_SSL,
EVENT_HOMEASSISTANT_STOP, EVENT_HOMEASSISTANT_STOP,
) )
from homeassistant.core import callback
from homeassistant.exceptions import ConfigEntryNotReady, HomeAssistantError from homeassistant.exceptions import ConfigEntryNotReady, HomeAssistantError
from homeassistant.helpers import config_validation as cv from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.aiohttp_client import async_get_clientsession from homeassistant.helpers.aiohttp_client import async_get_clientsession
@ -150,6 +151,7 @@ async def async_setup_entry(hass, entry):
hass.data[PLEX_DOMAIN][DISPATCHERS].setdefault(server_id, []) hass.data[PLEX_DOMAIN][DISPATCHERS].setdefault(server_id, [])
hass.data[PLEX_DOMAIN][DISPATCHERS][server_id].append(unsub) hass.data[PLEX_DOMAIN][DISPATCHERS][server_id].append(unsub)
@callback
def plex_websocket_callback(signal, data, error): def plex_websocket_callback(signal, data, error):
"""Handle callbacks from plexwebsocket library.""" """Handle callbacks from plexwebsocket library."""
if signal == SIGNAL_CONNECTION_STATE: if signal == SIGNAL_CONNECTION_STATE:
@ -167,9 +169,7 @@ async def async_setup_entry(hass, entry):
entry.data[CONF_SERVER], entry.data[CONF_SERVER],
error, error,
) )
asyncio.run_coroutine_threadsafe( hass.async_create_task(hass.config_entries.async_reload(entry.entry_id))
hass.config_entries.async_reload(entry.entry_id), hass.loop
)
elif signal == SIGNAL_DATA: elif signal == SIGNAL_DATA:
async_dispatcher_send(hass, PLEX_UPDATE_PLATFORMS_SIGNAL.format(server_id)) async_dispatcher_send(hass, PLEX_UPDATE_PLATFORMS_SIGNAL.format(server_id))