mirror of
https://github.com/xcat2/confluent.git
synced 2026-08-04 16:37:00 +00:00
4e9052012f
Both functions became coroutines solely to await one get_hashes call, but their bodies are long stretches of blocking work: mksquashfs, the encrypt_image copy loop, rsync, ssh and osdeploy. From Python 3.11 on, asyncio.run installs a SIGINT handler that cancels the main task and returns rather than raising, so an interrupt is only noticed at the next await. Interrupting a pack during mksquashfs surfaced as a CalledProcessError from the dying child instead of a KeyboardInterrupt, and with a base profile, where nothing is ever awaited, pack carried on and published the profile before exiting. Run the loop only around the call that needs it.