From 0936963aaf8f9bbd367714c2dd7ce3a62ed6138c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Janouch?= Date: Tue, 16 Apr 2019 19:53:50 +0200 Subject: Avoid DB data races from different goroutines --- cmd/sklad/main.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/cmd/sklad/main.go b/cmd/sklad/main.go index c08ce2b..5f10348 100644 --- a/cmd/sklad/main.go +++ b/cmd/sklad/main.go @@ -12,6 +12,7 @@ import ( "path" "path/filepath" "strings" + "sync" "time" "janouch.name/sklad/imgutil" @@ -308,6 +309,8 @@ func handleLabel(w http.ResponseWriter, r *http.Request) { executeTemplate("label.tmpl", w, ¶ms) } +var mutex sync.Mutex + func handle(w http.ResponseWriter, r *http.Request) { if err := r.ParseForm(); err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) @@ -317,6 +320,9 @@ func handle(w http.ResponseWriter, r *http.Request) { w.Header().Set("Cache-Control", "no-store") } + mutex.Lock() + defer mutex.Unlock() + switch _, base := path.Split(r.URL.Path); base { case "login": handleLogin(w, r) -- cgit v1.2.3