mirror of
https://github.com/navidrome/navidrome.git
synced 2026-10-10 19:37:08 +02:00
scrobbleCtx is written from request-handling goroutines (Start/Skip/ Clear) and read from the async trackSwitcherGoroutine, which is a data race on the context.Context interface value. Guard it with a RWMutex and read it through a getScrobbleCtx() accessor. Also fall back clientId/client to device-scoped values when the context has none, so an empty clientId can't collide with another player's session key in the scrobbler's playMap cache. Addresses review feedback from gemini-code-assist on #5716. |
||
|---|---|---|
| .. | ||
| mpv | ||
| device.go | ||
| playback_suite_test.go | ||
| playbackserver.go | ||
| queue.go | ||
| queue_test.go | ||