File tree Expand file tree Collapse file tree 2 files changed +8
-4
lines changed
Expand file tree Collapse file tree 2 files changed +8
-4
lines changed Original file line number Diff line number Diff line change @@ -824,6 +824,7 @@ def __init__(self, hass: HomeAssistant) -> None:
824824 STORAGE_KEY ,
825825 atomic_writes = True ,
826826 minor_version = STORAGE_VERSION_MINOR ,
827+ serialize_in_event_loop = False ,
827828 )
828829 self .hass .bus .async_listen (
829830 EVENT_DEVICE_REGISTRY_UPDATED ,
@@ -1630,13 +1631,17 @@ def get_optional_enum[_EnumT: StrEnum](
16301631 self .entities = entities
16311632 self ._entities_data = entities .data
16321633
1633- @callback
16341634 def _data_to_save (self ) -> dict [str , Any ]:
16351635 """Return data of entity registry to store in a file."""
1636+ # Create intermediate lists to allow this method to be called from a thread
1637+ # other than the event loop.
16361638 return {
1637- "entities" : [entry .as_storage_fragment for entry in self .entities .values ()],
1639+ "entities" : [
1640+ entry .as_storage_fragment for entry in list (self .entities .values ())
1641+ ],
16381642 "deleted_entities" : [
1639- entry .as_storage_fragment for entry in self .deleted_entities .values ()
1643+ entry .as_storage_fragment
1644+ for entry in list (self .deleted_entities .values ())
16401645 ],
16411646 }
16421647
Original file line number Diff line number Diff line change @@ -77,7 +77,6 @@ def async_schedule_save(self) -> None:
7777 delay = SAVE_DELAY if self .hass .state is CoreState .running else SAVE_DELAY_LONG
7878 self ._store .async_delay_save (self ._data_to_save , delay )
7979
80- @callback
8180 @abstractmethod
8281 def _data_to_save (self ) -> _StoreDataT :
8382 """Return data of registry to store in a file."""
You can’t perform that action at this time.
0 commit comments