Mutex around cleaners map
This commit is contained in:
7
lts.go
7
lts.go
@ -122,6 +122,7 @@ type Cleaner struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var cleaners map[string]Cleaner = map[string]Cleaner{}
|
var cleaners map[string]Cleaner = map[string]Cleaner{}
|
||||||
|
var cleanersMutex sync.Mutex
|
||||||
|
|
||||||
func handleUpload(w http.ResponseWriter, r *http.Request) {
|
func handleUpload(w http.ResponseWriter, r *http.Request) {
|
||||||
limit := int64(10737418240) // 10GiB
|
limit := int64(10737418240) // 10GiB
|
||||||
@ -188,10 +189,12 @@ func handleUpload(w http.ResponseWriter, r *http.Request) {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println("Could not start cleaner daemon: ", err)
|
log.Println("Could not start cleaner daemon: ", err)
|
||||||
}
|
}
|
||||||
|
cleanersMutex.Lock()
|
||||||
cleaners[bare_name] = Cleaner{
|
cleaners[bare_name] = Cleaner{
|
||||||
Timeout: Timeout{ H: hours, M: mins, S: secs },
|
Timeout: Timeout{ H: hours, M: mins, S: secs },
|
||||||
SpawnTime: time.Now().Unix(),
|
SpawnTime: time.Now().Unix(),
|
||||||
}
|
}
|
||||||
|
cleanersMutex.Unlock()
|
||||||
}
|
}
|
||||||
|
|
||||||
func handleHome(w http.ResponseWriter, r *http.Request) {
|
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().Day(), info.ModTime().Month().String(), info.ModTime().Year(),
|
||||||
info.ModTime().Hour(), info.ModTime().Minute(), info.ModTime().Second(),
|
info.ModTime().Hour(), info.ModTime().Minute(), info.ModTime().Second(),
|
||||||
)
|
)
|
||||||
|
cleanersMutex.Lock()
|
||||||
cleaner, _ := cleaners[e.Name()]
|
cleaner, _ := cleaners[e.Name()]
|
||||||
total := cleaner.Timeout.S + cleaner.Timeout.M*60 + cleaner.Timeout.H*60*60
|
total := cleaner.Timeout.S + cleaner.Timeout.M*60 + cleaner.Timeout.H*60*60
|
||||||
now := time.Now().Unix()
|
now := time.Now().Unix()
|
||||||
fmt.Println(cleaner.SpawnTime + total - now)
|
|
||||||
timeleft_unix := time.Unix(cleaner.SpawnTime + total - now, 0)
|
timeleft_unix := time.Unix(cleaner.SpawnTime + total - now, 0)
|
||||||
|
cleanersMutex.Unlock()
|
||||||
timeleft := fmt.Sprintf("time left %02d:%02d:%02d",
|
timeleft := fmt.Sprintf("time left %02d:%02d:%02d",
|
||||||
timeleft_unix.Hour() - 1, timeleft_unix.Minute(), timeleft_unix.Second(),
|
timeleft_unix.Hour() - 1, timeleft_unix.Minute(), timeleft_unix.Second(),
|
||||||
)
|
)
|
||||||
@ -287,6 +291,7 @@ func watchAllowedUsers() chan bool {
|
|||||||
if !ok {
|
if !ok {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
fmt.Println(event)
|
||||||
if event.Has(fsnotify.Chmod | fsnotify.Rename) {
|
if event.Has(fsnotify.Chmod | fsnotify.Rename) {
|
||||||
reloadAllowedUsers()
|
reloadAllowedUsers()
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user