From 126933fb5ed3116049e69ac95aa0b118cb651090 Mon Sep 17 00:00:00 2001 From: Carl Kittelberger Date: Mon, 22 Jan 2024 00:47:44 +0100 Subject: [PATCH] Use metadata hash to avoid duped metadata. This was causing high CPU usage. --- icedreammusic/np/main.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/icedreammusic/np/main.go b/icedreammusic/np/main.go index 52d0ffc..e7da17b 100644 --- a/icedreammusic/np/main.go +++ b/icedreammusic/np/main.go @@ -39,6 +39,7 @@ func init() { func watchMetadata(ctx context.Context) <-chan *libnp.Info { ticker := time.NewTicker(time.Second) c := make(chan *libnp.Info) + var lastMetadataID [64]byte go func(ticker *time.Ticker) { for { select { @@ -50,6 +51,14 @@ func watchMetadata(ctx context.Context) <-chan *libnp.Info { os.Stderr.WriteString("WARNING: " + err.Error() + "\n") continue } + var newMetadataID [64]byte + if info != nil { + newMetadataID = generateIDFromMetadata(*info) + } + if newMetadataID == lastMetadataID { + // metadata did not change + continue + } c <- info } }