lib/svcutil: Simplify doneService (#7303)

OnSupervisorDone no longer allocates.

Co-authored-by: greatroar <@>
This commit is contained in:
greatroar 2021-01-25 16:27:17 +01:00 committed by GitHub
parent e32a516b5f
commit 6c3e187d1d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 6 deletions

View File

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