Browse Source

lib/svcutil: Simplify doneService (#7303)

OnSupervisorDone no longer allocates.

Co-authored-by: greatroar <@>
greatroar 4 years ago
parent
commit
6c3e187d1d
1 changed files with 4 additions and 6 deletions
  1. 4 6
      lib/svcutil/svcutil.go

+ 4 - 6
lib/svcutil/svcutil.go

@@ -144,19 +144,17 @@ func (s *service) String() string {
 
 }
 
-type doneService struct {
-	fn func()
-}
+type doneService func()
 
-func (s *doneService) Serve(ctx context.Context) error {
+func (fn doneService) Serve(ctx context.Context) error {
 	<-ctx.Done()
-	s.fn()
+	fn()
 	return nil
 }
 
 // OnSupervisorDone calls fn when sup is done.
 func OnSupervisorDone(sup *suture.Supervisor, fn func()) {
-	sup.Add(&doneService{fn})
+	sup.Add(doneService(fn))
 }
 
 func SpecWithDebugLogger(l logger.Logger) suture.Spec {