lib: Replace done channel with contexts in and add names to util services (#6166)

This commit is contained in:
Simon Frei
2019-11-21 08:41:15 +01:00
committed by GitHub
parent 552ea68672
commit 90d85fd0a2
34 changed files with 240 additions and 218 deletions

View File

@@ -7,6 +7,8 @@
package versioner
import (
"context"
"fmt"
"sort"
"strconv"
"time"
@@ -65,13 +67,13 @@ func NewStaggered(folderID string, folderFs fs.Filesystem, params map[string]str
},
mutex: sync.NewMutex(),
}
s.Service = util.AsService(s.serve)
s.Service = util.AsService(s.serve, s.String())
l.Debugf("instantiated %#v", s)
return s
}
func (v *Staggered) serve(stop chan struct{}) {
func (v *Staggered) serve(ctx context.Context) {
v.clean()
if v.testCleanDone != nil {
close(v.testCleanDone)
@@ -83,7 +85,7 @@ func (v *Staggered) serve(stop chan struct{}) {
select {
case <-tck.C:
v.clean()
case <-stop:
case <-ctx.Done():
return
}
}
@@ -230,3 +232,7 @@ func (v *Staggered) GetVersions() (map[string][]FileVersion, error) {
func (v *Staggered) Restore(filepath string, versionTime time.Time) error {
return restoreFile(v.versionsFs, v.folderFs, filepath, versionTime, TagFilename)
}
func (v *Staggered) String() string {
return fmt.Sprintf("Staggered/@%p", v)
}