MCPcopy Index your code
hub / github.com/syncthing/syncthing / setState

Method setState

lib/model/folderstate.go:106–138  ·  view source on GitHub ↗

setState sets the new folder state, for states other than FolderError.

(newState folderState)

Source from the content-addressed store, hash-verified

104
105// setState sets the new folder state, for states other than FolderError.
106func (s *stateTracker) setState(newState folderState) {
107 if newState == FolderError {
108 panic("must use setError")
109 }
110
111 s.mut.Lock()
112 defer s.mut.Unlock()
113
114 if newState == s.current {
115 return
116 }
117
118 defer func() {
119 metricFolderState.WithLabelValues(s.folderID).Set(float64(s.current))
120 }()
121
122 eventData := map[string]interface{}{
123 "folder": s.folderID,
124 "to": newState.String(),
125 "from": s.current.String(),
126 }
127
128 if !s.changed.IsZero() {
129 eventData["duration"] = time.Since(s.changed).Seconds()
130 }
131
132 slog.Debug("Folder changed state", "folder", s.folderID, "state", newState, "from", s.current)
133
134 s.current = newState
135 s.changed = time.Now().Truncate(time.Second)
136
137 s.evLogger.Log(events.StateChanged, eventData)
138}
139
140// getState returns the current state, the time when it last changed, and the
141// current error or nil.

Callers 10

revertMethod · 0.80
ServeMethod · 0.80
pullMethod · 0.80
scanSubdirsMethod · 0.80
revertMethod · 0.80
pullMethod · 0.80
copierRoutineMethod · 0.80
pullerRoutineMethod · 0.80
overrideMethod · 0.80

Calls 7

UnlockMethod · 0.80
StringMethod · 0.65
SinceMethod · 0.65
TruncateMethod · 0.65
NowMethod · 0.65
LogMethod · 0.65
SetMethod · 0.45

Tested by

no test coverage detected