Close reprovider in the provider system
License: MIT Signed-off-by: Michael Avila <davidmichaelavila@gmail.com>
Michael Avila committed
May 6, 2019 at 11:46 UTC
16ed07b995c1183e47bae2e41a1b35c107c50a8d
2 files changed
+16
-2
provider/provider.go
+2
@@ -30,4 +30,6 @@ type Reprovider interface {
30
Run()
31
// Trigger a reprovide
32
Trigger(context.Context) error
33
+ // Close stops the reprovider
34
+ Close() error
35
}
provider/system.go
+14
-2
@@ -32,8 +32,20 @@ func (s *system) Run() {
32
33
// Close the provider and reprovider
34
func (s *system) Close() error {
35
- // TODO: Close reprovider here
36
- return s.provider.Close()
35
+ var errs []error
36
+
37
+ if err := s.provider.Close(); err != nil {
38
+ errs = append(errs, err)
39
+ }
40
+
41
+ if err := s.reprovider.Close(); err != nil {
42
+ errs = append(errs, err)
43
+ }
44
+
45
+ if len(errs) > 0 {
46
+ return errs[0]
47
+ }
48
+ return nil
49
}
50
51
// Provide a value