1
0
forked from rosa/hakurei

cmd/mbf: close on cancel completion

Like the previous change, this enables synchronisation on the client side via epoll.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-04-19 15:03:52 +09:00
parent 9a274c78a3
commit 4dcec40156

View File

@@ -99,10 +99,9 @@ func cancelIdent(
var ident pkg.ID var ident pkg.ID
if _, err := io.ReadFull(conn, ident[:]); err != nil { if _, err := io.ReadFull(conn, ident[:]); err != nil {
return nil, false, errors.Join(err, conn.Close()) return nil, false, errors.Join(err, conn.Close())
} else if err = conn.Close(); err != nil {
return nil, false, err
} }
return &ident, cache.Cancel(unique.Make(ident)), nil ok := cache.Cancel(unique.Make(ident))
return &ident, ok, conn.Close()
} }
// serve services connections from a [net.UnixListener]. // serve services connections from a [net.UnixListener].
@@ -324,7 +323,10 @@ func cancelRemote(
} else if n != len(id) { } else if n != len(id) {
return errors.Join(io.ErrShortWrite, conn.Close()) return errors.Join(io.ErrShortWrite, conn.Close())
} }
return conn.Close() if _, err = conn.Read(make([]byte, 1)); err == io.EOF {
err = nil
}
return errors.Join(err, conn.Close())
} }
// abortRemote aborts all [pkg.Artifact] curing on a daemon. // abortRemote aborts all [pkg.Artifact] curing on a daemon.