From f36ec7e6d3038d89367321415f3da28f8aa0f649 Mon Sep 17 00:00:00 2001 From: marcobaobao Date: Tue, 17 Sep 2024 10:45:55 +0200 Subject: [PATCH] fixed livestreams monitor peristence --- server/internal/livestream/monitor.go | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/server/internal/livestream/monitor.go b/server/internal/livestream/monitor.go index 1007e6c..0e09b21 100644 --- a/server/internal/livestream/monitor.go +++ b/server/internal/livestream/monitor.go @@ -3,6 +3,7 @@ package livestream import ( "encoding/gob" "log/slog" + "maps" "os" "path/filepath" @@ -84,7 +85,12 @@ func (m *Monitor) Persist() error { slog.Debug("persisting livestream monitor state") - return gob.NewEncoder(fd).Encode(m.streams) + var toPersist []string + for url := range maps.Keys(m.streams) { + toPersist = append(toPersist, url) + } + + return gob.NewEncoder(fd).Encode(toPersist) } // Restore a saved state and resume the monitored livestreams @@ -96,14 +102,14 @@ func (m *Monitor) Restore() error { defer fd.Close() - restored := make(map[string]*LiveStream) + var toRestore []string - if err := gob.NewDecoder(fd).Decode(&restored); err != nil { + if err := gob.NewDecoder(fd).Decode(&toRestore); err != nil { return err } - for k := range restored { - m.Add(k) + for _, url := range toRestore { + m.Add(url) } slog.Debug("restored livestream monitor state")