Wake the Asahi mic mapper on PipeWire events instead of polling (#403)
--watch re-ran pw-dump and several pactl queries every 2 s, which kept pipewire, pipewire-pulse and wireplumber awake around the clock: 14.2% of a core on an idle M1 Max, 0.3% after. supervise() now sleeps on pactl subscribe and repairs when a sink, source, card or module appears or vanishes, a card or module changes, or the server does. Stream, client and sink/source change events are ignored; bursts settle for 0.5 s with a 5 s cap; a 10-minute backstop keeps eventual consistency. A lost subscription repairs once and resubscribes after 2 s. SIGTERM unwinds through supervise so the subscriber exits with the service. Claude-Session: https://claude.ai/code/session_01WHvo2RfghRcv7UoqFntuM9 Co-authored-by: Skyler <schoosskyler@gmail.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> Co-authored-by: Naeem Malik <malik2015naeem@gmail.com>
S
Skyler committed
458042ba7fd43e2b8dffb8edac0c940e62c7ee1d
Parent: 93f29ab
Committed by GitHub <noreply@github.com>
on 9/12/2026, 9:33:26 AM