From d1c4f81f4e989000a2aab799c4ba1586b86a4d61 Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Mon, 9 Nov 2020 18:03:15 +0100 Subject: [PATCH] Avoid concurrent map read/write --- web/handler.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/web/handler.go b/web/handler.go index b9c5727..9b5b1dd 100644 --- a/web/handler.go +++ b/web/handler.go @@ -107,11 +107,15 @@ func statisticsHandler(w http.ResponseWriter, r *http.Request) { uid := r.URL.Query()["uid"][0] connectedClients[name][uid] = currentTime } + toDelete := make([]string, 0) for uid, oldTime := range connectedClients[name] { if currentTime-oldTime > 40 { - delete(connectedClients, uid) + toDelete = append(toDelete, uid) } } + for _, uid := range toDelete { + delete(connectedClients[name], uid) + } // Get requested stream stream, err := streams.Get(name)