From eeadbc4f961d99dd98982e18207ecc6f5f661b43 Mon Sep 17 00:00:00 2001 From: "Alexander \"Arav\" Andreev" Date: Thu, 5 Oct 2023 18:04:15 +0400 Subject: [PATCH] To a SongList a method UpdateCurrentMaxListeners() was added, it checks and updates max listeners for a current song in a thread safe manner. --- internal/radio/song.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/internal/radio/song.go b/internal/radio/song.go index b9fb0da..beca1ba 100644 --- a/internal/radio/song.go +++ b/internal/radio/song.go @@ -86,6 +86,16 @@ func (sl *SongList) Current() *Song { return &sl.current } +// UpdateCurrentMaxListeners checks and updates a maximal number of listeners +// for a current song. +func (sl *SongList) UpdateCurrentMaxListeners(listeners int) { + sl.Lock() + defer sl.Unlock() + if listeners > sl.current.MaxListeners { + sl.current.MaxListeners = listeners + } +} + // List returns a list of lastly played songs. func (sl *SongList) List() []Song { sl.Lock()