diff --git a/internal/pipewire/core.go b/internal/pipewire/core.go index 4642bdb..6a8af0b 100644 --- a/internal/pipewire/core.go +++ b/internal/pipewire/core.go @@ -3,6 +3,8 @@ package pipewire import ( "errors" "fmt" + "maps" + "slices" "strconv" "time" ) @@ -373,6 +375,10 @@ func (core *Core) Sync() error { } } + if len(core.ctx.pendingIds) != 0 { + core.ctx.closeReceivedFiles() + return &ProxyFatalError{Err: UnacknowledgedProxyError(slices.Collect(maps.Keys(core.ctx.pendingIds))), ProxyErrs: core.ctx.cloneAsProxyErrors()} + } return core.ctx.doSyncComplete() } diff --git a/internal/pipewire/pipewire.go b/internal/pipewire/pipewire.go index 06f7fc6..907f854 100644 --- a/internal/pipewire/pipewire.go +++ b/internal/pipewire/pipewire.go @@ -18,7 +18,6 @@ import ( "encoding/binary" "fmt" "io" - "maps" "os" "runtime" "slices" @@ -601,13 +600,6 @@ func (ctx *Context) roundtrip() (err error) { err = &ProxyFatalError{Err: danglingFiles, ProxyErrs: ctx.cloneAsProxyErrors()} return } - - // this check must happen after everything else passes - if len(ctx.pendingIds) != 0 { - ctx.closeReceivedFiles() - err = &ProxyFatalError{Err: UnacknowledgedProxyError(slices.Collect(maps.Keys(ctx.pendingIds))), ProxyErrs: ctx.cloneAsProxyErrors()} - return - } }() var remaining []byte