Fix #857: Clear in-memory cache as well as on disk
This commit is contained in:
+16
-15
@@ -43,23 +43,23 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type App struct {
|
type App struct {
|
||||||
Config *Config
|
Config *Config
|
||||||
ServerManager *ServerManager
|
ServerManager *ServerManager
|
||||||
LyricsManager *LyricsManager
|
LyricsManager *LyricsManager
|
||||||
ImageManager *ImageManager
|
ImageManager *ImageManager
|
||||||
AudioCache *AudioCache
|
AudioCache *AudioCache
|
||||||
AutoEQManager *AutoEQManager
|
AutoEQManager *AutoEQManager
|
||||||
EQPresetManager *EQPresetManager
|
EQPresetManager *EQPresetManager
|
||||||
PlaybackManager *PlaybackManager
|
PlaybackManager *PlaybackManager
|
||||||
LocalPlayer *mpv.Player
|
LocalPlayer *mpv.Player
|
||||||
UpdateChecker UpdateChecker
|
UpdateChecker UpdateChecker
|
||||||
MPRISHandler *MPRISHandler
|
MPRISHandler *MPRISHandler
|
||||||
WinSMTC *windows.SMTC
|
WinSMTC *windows.SMTC
|
||||||
ipcServer ipc.IPCServer
|
ipcServer ipc.IPCServer
|
||||||
|
|
||||||
// UI callbacks to be set in main
|
// UI callbacks to be set in main
|
||||||
OnReactivate func()
|
OnReactivate func()
|
||||||
OnExit func()
|
OnExit func()
|
||||||
OnReloadTheme func()
|
OnReloadTheme func()
|
||||||
|
|
||||||
appName string
|
appName string
|
||||||
@@ -283,6 +283,7 @@ func (a *App) ClearCaches() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
a.ImageManager.ClearInMemoryCache()
|
||||||
}
|
}
|
||||||
|
|
||||||
func checkPortablePath() string {
|
func checkPortablePath() string {
|
||||||
|
|||||||
@@ -66,10 +66,7 @@ func NewImageManager(ctx context.Context, s *ServerManager, baseCacheDir string)
|
|||||||
maxOnDiskCacheSizeBytes: defaultDiskCacheSizeBytes,
|
maxOnDiskCacheSizeBytes: defaultDiskCacheSizeBytes,
|
||||||
serverFetchSema: make(chan any, maxConcurrentServerFetches),
|
serverFetchSema: make(chan any, maxConcurrentServerFetches),
|
||||||
}
|
}
|
||||||
s.OnLogout(func() {
|
s.OnLogout(i.ClearInMemoryCache)
|
||||||
i.thumbnailCache.Clear()
|
|
||||||
i.clearFullSizeCover()
|
|
||||||
})
|
|
||||||
i.thumbnailCache.OnEvictTaskRan = func() {
|
i.thumbnailCache.OnEvictTaskRan = func() {
|
||||||
i.clearFullSizeCoverIfExpired()
|
i.clearFullSizeCoverIfExpired()
|
||||||
i.pruneOnDiskCache()
|
i.pruneOnDiskCache()
|
||||||
@@ -195,6 +192,12 @@ func (i *ImageManager) RefreshCachedArtistImageIfExpired(artistID string, imgURL
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ClearInMemoryCache clears images from the in-memory caches.
|
||||||
|
func (i *ImageManager) ClearInMemoryCache() {
|
||||||
|
i.thumbnailCache.Clear()
|
||||||
|
i.clearFullSizeCover()
|
||||||
|
}
|
||||||
|
|
||||||
func (i *ImageManager) ensureCoverCacheDir() string {
|
func (i *ImageManager) ensureCoverCacheDir() string {
|
||||||
// if user logged out with pending fetches in progress,
|
// if user logged out with pending fetches in progress,
|
||||||
// make sure we don't write to nil (00000000-*0) cache directory
|
// make sure we don't write to nil (00000000-*0) cache directory
|
||||||
|
|||||||
Reference in New Issue
Block a user