From 753432cf09ac81fbfd9b5357ba6112f0d027c55d Mon Sep 17 00:00:00 2001 From: Ophestra Date: Sun, 19 Apr 2026 18:24:11 +0900 Subject: [PATCH] cmd/mbf: optionally wait for cancel Synchronisation is not needed here during interactive use. Signed-off-by: Ophestra --- cmd/mbf/daemon.go | 10 +++++++--- cmd/mbf/daemon_test.go | 4 ++-- cmd/mbf/main.go | 4 ++-- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/cmd/mbf/daemon.go b/cmd/mbf/daemon.go index c0b9e73a..d694bea0 100644 --- a/cmd/mbf/daemon.go +++ b/cmd/mbf/daemon.go @@ -305,6 +305,7 @@ func cancelRemote( ctx context.Context, addr *net.UnixAddr, a pkg.Artifact, + wait bool, ) error { done, conn, err := dial(ctx, addr) if err != nil { @@ -323,8 +324,10 @@ func cancelRemote( } else if n != len(id) { return errors.Join(io.ErrShortWrite, conn.Close()) } - if _, err = conn.Read(make([]byte, 1)); err == io.EOF { - err = nil + if wait { + if _, err = conn.Read(make([]byte, 1)); err == io.EOF { + err = nil + } } return errors.Join(err, conn.Close()) } @@ -333,6 +336,7 @@ func cancelRemote( func abortRemote( ctx context.Context, addr *net.UnixAddr, + wait bool, ) error { done, conn, err := dial(ctx, addr) if err != nil { @@ -341,7 +345,7 @@ func abortRemote( defer close(done) err = writeSpecialHeader(conn, specialAbort) - if err == nil { + if wait && err == nil { if _, err = conn.Read(make([]byte, 1)); err == io.EOF { err = nil } diff --git a/cmd/mbf/daemon_test.go b/cmd/mbf/daemon_test.go index d1d00eaa..7b825d0b 100644 --- a/cmd/mbf/daemon_test.go +++ b/cmd/mbf/daemon_test.go @@ -106,11 +106,11 @@ func TestDaemon(t *testing.T) { } }() - if err = cancelRemote(ctx, &addr, pkg.NewFile("nonexistent", nil)); err != nil { + if err = cancelRemote(ctx, &addr, pkg.NewFile("nonexistent", nil), true); err != nil { t.Fatalf("cancelRemote: error = %v", err) } - if err = abortRemote(ctx, &addr); err != nil { + if err = abortRemote(ctx, &addr, true); err != nil { t.Fatalf("abortRemote: error = %v", err) } diff --git a/cmd/mbf/main.go b/cmd/mbf/main.go index cbb6f7b2..b8516baa 100644 --- a/cmd/mbf/main.go +++ b/cmd/mbf/main.go @@ -489,7 +489,7 @@ func main() { cc, cancel := context.WithDeadline(context.Background(), daemonDeadline()) defer cancel() - if _err := cancelRemote(cc, &addr, a); _err != nil { + if _err := cancelRemote(cc, &addr, a, false); _err != nil { log.Println(err) } } @@ -523,7 +523,7 @@ func main() { c.NewCommand( "abort", "Abort all pending cures on the daemon", - func([]string) error { return abortRemote(ctx, &addr) }, + func([]string) error { return abortRemote(ctx, &addr, false) }, ) {