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,7 @@
package syncthing
import (
"context"
"fmt"
"github.com/thejerf/suture"
@@ -26,12 +27,12 @@ func newVerboseService(evLogger events.Logger) *verboseService {
s := &verboseService{
sub: evLogger.Subscribe(events.AllEvents),
}
s.Service = util.AsService(s.serve)
s.Service = util.AsService(s.serve, s.String())
return s
}
// serve runs the verbose logging service.
func (s *verboseService) serve(stop chan struct{}) {
func (s *verboseService) serve(ctx context.Context) {
for {
select {
case ev := <-s.sub.C():
@@ -39,7 +40,7 @@ func (s *verboseService) serve(stop chan struct{}) {
if formatted != "" {
l.Verboseln(formatted)
}
case <-stop:
case <-ctx.Done():
return
}
}
@@ -187,3 +188,7 @@ func (s *verboseService) formatEvent(ev events.Event) string {
return fmt.Sprintf("%s %#v", ev.Type, ev)
}
func (s *verboseService) String() string {
return fmt.Sprintf("verboseService@%p", s)
}