mirror of
https://github.com/home-assistant/core.git
synced 2026-03-03 00:00:58 +00:00
Construct storage data in the executor Constructing storage data can be expensive for large files and can block the event loop. While ideally we optimize the construction of the data, there are some places we cannot make it any faster. To avoid blocking the loop, the construction of the data is now done in the executor by running the data_func in the executor. 2024-03-14 11:28:20.178 WARNING (MainThread) [asyncio] Executing <TimerHandle cancelled when=2319925.760294916 Store._async_schedule_callback_delayed_write() created at /Users/bdraco/home-assistant/homeassistant/helpers/storage.py:328> took 0.159 seconds There is some risk that the data_func is not thread-safe and needs to be run in the event loop, but I could not find any cases in our existing code where it would be a problem