1
0
mirror of https://github.com/home-assistant/supervisor.git synced 2026-07-06 21:35:10 +01:00
Stefan Agner 206c37fa0a store API: drop unnecessary asyncio.gather over non-awaiting coroutines (#6885)
Investigating slow-callback warnings during `ha store list`, py-spy traces
showed ~70% of the on-CPU time spent under loop debug mode in
traceback.extract_stack() and linecache.checkcache(), triggered by N task
creations inside _all_store_apps_info()'s asyncio.gather.

In the non-extended path, _generate_app_information() never awaits, so each
gather'd coroutine runs straight through in its Task step. gather provides
zero concurrency here and only adds N task creations + scheduling cycles.
Under loop.set_debug(True) (supervisor dev mode) each create_task captures
its creation stack via extract_stack(), which made list responses ~5x
slower. Production overhead is negligible.

Replace with a plain async list comprehension. Behavior is unchanged: the
non-extended path was already serial; the extended path's
await app.long_description() still serializes the same way it would have
once gather observed the suspension.
2026-05-28 21:10:21 +02:00
2021-03-16 15:47:40 +01:00
2025-10-08 10:44:49 +02:00
2020-07-29 14:45:37 +02:00
2024-09-30 18:42:08 +02:00

Home Assistant Supervisor

First private cloud solution for home automation

Home Assistant (former Hass.io) is a container-based system for managing your Home Assistant Core installation and related applications. The system is controlled via Home Assistant which communicates with the Supervisor. The Supervisor provides an API to manage the installation. This includes changing network settings or installing and updating software.

Installation

Installation instructions can be found at https://home-assistant.io/getting-started.

Development

For small changes and bugfixes you can just follow this, but for significant changes open a RFC first. Development instructions can be found here.

Release

Releases are done in 3 stages (channels) with this structure:

  1. Pull requests are merged to the main branch.
  2. A new build is pushed to the dev stage.
  3. Releases are published.
  4. A new build is pushed to the beta stage.
  5. The stable.json file is updated.
  6. The build that was pushed to beta will now be pushed to stable.

Home Assistant - A project from the Open Home Foundation

Languages
Python 95.8%
JavaScript 4%