Correctly set and clear errors for missing folders (fixes #1937)

This commit is contained in:
Audrius Butkevicius
2015-06-13 19:10:11 +01:00
parent 7f56d5c23a
commit 1d856b4723
5 changed files with 36 additions and 6 deletions

View File

@@ -71,7 +71,6 @@ func (s *stateTracker) setState(newState folderState) {
}
s.current = newState
s.err = nil
s.changed = time.Now()
events.Default.Log(events.StateChanged, eventData)
@@ -111,3 +110,26 @@ func (s *stateTracker) setError(err error) {
}
s.mut.Unlock()
}
// clearError sets the folder state to FolderIdle and clears the error
func (s *stateTracker) clearError() {
s.mut.Lock()
if s.current == FolderError {
eventData := map[string]interface{}{
"folder": s.folder,
"to": FolderIdle.String(),
"from": s.current.String(),
}
if !s.changed.IsZero() {
eventData["duration"] = time.Since(s.changed).Seconds()
}
s.current = FolderIdle
s.err = nil
s.changed = time.Now()
events.Default.Log(events.StateChanged, eventData)
}
s.mut.Unlock()
}