Improved thread safety
This commit is contained in:
@@ -3,6 +3,7 @@ import logging
|
||||
from homeassistant.components.websocket_api import event_message
|
||||
from homeassistant.helpers import device_registry, entity_registry
|
||||
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
|
||||
from homeassistant.core import callback
|
||||
|
||||
from .const import DATA_BROWSERS, DOMAIN, DATA_ADDERS
|
||||
from .sensor import BrowserSensor
|
||||
@@ -130,11 +131,14 @@ class BrowserModBrowser:
|
||||
er.async_remove(self.entities["camera"].entity_id)
|
||||
del self.entities["camera"]
|
||||
|
||||
self.send(
|
||||
None, browserEntities={k: v.entity_id for k, v in self.entities.items()}
|
||||
hass.create_task(
|
||||
self.send(
|
||||
None, browserEntities={k: v.entity_id for k, v in self.entities.items()}
|
||||
)
|
||||
)
|
||||
|
||||
def send(self, command, **kwargs):
|
||||
@callback
|
||||
async def send(self, command, **kwargs):
|
||||
"""Send a command to this browser."""
|
||||
if self.connection is None:
|
||||
return
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -9,6 +9,8 @@ from homeassistant.components.websocket_api import (
|
||||
|
||||
from homeassistant.components import websocket_api
|
||||
|
||||
from homeassistant.core import callback
|
||||
|
||||
from .const import (
|
||||
BROWSER_ID,
|
||||
DATA_STORE,
|
||||
@@ -40,6 +42,7 @@ async def async_setup_connection(hass):
|
||||
browserID = msg[BROWSER_ID]
|
||||
store = hass.data[DOMAIN][DATA_STORE]
|
||||
|
||||
@callback
|
||||
def send_update(data):
|
||||
connection.send_message(event_message(msg["id"], {"result": data}))
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ async def async_setup_services(hass):
|
||||
if target not in browsers:
|
||||
continue
|
||||
browser = browsers[target]
|
||||
browser.send(service, **data)
|
||||
hass.create_task(browser.send(service, **data))
|
||||
|
||||
def handle_service(call):
|
||||
service = call.service
|
||||
|
||||
Reference in New Issue
Block a user