46 lines
600 B
Go
46 lines
600 B
Go
package config
|
|
|
|
import (
|
|
"sync"
|
|
"time"
|
|
)
|
|
|
|
var Autosave chan bool
|
|
var autotime int
|
|
|
|
// lock for autosave
|
|
var autolock sync.Mutex
|
|
|
|
func init() {
|
|
Autosave = make(chan bool)
|
|
}
|
|
|
|
func SetAutoTime(a int) {
|
|
autolock.Lock()
|
|
autotime = a
|
|
autolock.Unlock()
|
|
}
|
|
|
|
func GetAutoTime() int {
|
|
autolock.Lock()
|
|
a := autotime
|
|
autolock.Unlock()
|
|
return a
|
|
}
|
|
|
|
func StartAutoSave() {
|
|
go func() {
|
|
for {
|
|
if autotime < 1 {
|
|
break
|
|
}
|
|
time.Sleep(time.Duration(autotime) * time.Second)
|
|
// it's possible autotime was changed while sleeping
|
|
if autotime < 1 {
|
|
break
|
|
}
|
|
Autosave <- true
|
|
}
|
|
}()
|
|
}
|