From 9b0d448698bfceb9655dcf1e9d39e620c0f403a8 Mon Sep 17 00:00:00 2001 From: kamkow1 Date: Sun, 22 Jun 2025 20:42:18 +0200 Subject: [PATCH] Mutex around cleaners map --- lts.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lts.go b/lts.go index bcbc666..039be92 100644 --- a/lts.go +++ b/lts.go @@ -122,6 +122,7 @@ type Cleaner struct { } var cleaners map[string]Cleaner = map[string]Cleaner{} +var cleanersMutex sync.Mutex func handleUpload(w http.ResponseWriter, r *http.Request) { limit := int64(10737418240) // 10GiB @@ -188,10 +189,12 @@ func handleUpload(w http.ResponseWriter, r *http.Request) { if err != nil { log.Println("Could not start cleaner daemon: ", err) } + cleanersMutex.Lock() cleaners[bare_name] = Cleaner{ Timeout: Timeout{ H: hours, M: mins, S: secs }, SpawnTime: time.Now().Unix(), } + cleanersMutex.Unlock() } func handleHome(w http.ResponseWriter, r *http.Request) { @@ -231,11 +234,12 @@ func handleBrowse(w http.ResponseWriter, r *http.Request) { info.ModTime().Day(), info.ModTime().Month().String(), info.ModTime().Year(), info.ModTime().Hour(), info.ModTime().Minute(), info.ModTime().Second(), ) + cleanersMutex.Lock() cleaner, _ := cleaners[e.Name()] total := cleaner.Timeout.S + cleaner.Timeout.M*60 + cleaner.Timeout.H*60*60 now := time.Now().Unix() - fmt.Println(cleaner.SpawnTime + total - now) timeleft_unix := time.Unix(cleaner.SpawnTime + total - now, 0) + cleanersMutex.Unlock() timeleft := fmt.Sprintf("time left %02d:%02d:%02d", timeleft_unix.Hour() - 1, timeleft_unix.Minute(), timeleft_unix.Second(), ) @@ -287,6 +291,7 @@ func watchAllowedUsers() chan bool { if !ok { return } + fmt.Println(event) if event.Has(fsnotify.Chmod | fsnotify.Rename) { reloadAllowedUsers() }