internal/pipewire: store proxy errors in context
All checks were successful
Test / Create distribution (push) Successful in 35s
Test / Sandbox (push) Successful in 2m37s
Test / Sandbox (race detector) (push) Successful in 4m37s
Test / Hakurei (push) Successful in 4m50s
Test / Hpkg (push) Successful in 5m6s
Test / Hakurei (race detector) (push) Successful in 4m39s
Test / Flake checks (push) Successful in 1m41s

This change fixes handling of non-fatal errors during a roundtrip as there can be multiple receive calls per roundtrip.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2025-12-06 19:13:46 +09:00
parent 490093a659
commit 7cb3308a53
2 changed files with 45 additions and 22 deletions

View File

@@ -361,18 +361,18 @@ func (core *Core) Sync() error {
if err := core.ctx.coreSync(roundtripSyncID); err != nil {
return err
}
deadline := time.Now().Add(syncTimeout)
for !core.done {
if time.Now().After(deadline) {
return ErrNotDone
}
if err := core.ctx.Roundtrip(); err != nil {
if err := core.ctx.roundtrip(); err != nil {
return err
}
}
return nil
return core.ctx.cloneProxyErrors()
}
// The CorePong message is sent from the client to the server when the server emits the Ping event.