projects
/
arvados.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch '16212-pam-login'
[arvados.git]
/
lib
/
service
/
cmd.go
diff --git
a/lib/service/cmd.go
b/lib/service/cmd.go
index 7f2f78ee9a9f7224aac4aacba94148497f292a5e..1e7a9a36edd3a8142192d14bfcfbf12885e1e857 100644
(file)
--- a/
lib/service/cmd.go
+++ b/
lib/service/cmd.go
@@
-29,6
+29,7
@@
import (
type Handler interface {
http.Handler
CheckHealth() error
type Handler interface {
http.Handler
CheckHealth() error
+ Done() <-chan struct{}
}
type NewHandlerFunc func(_ context.Context, _ *arvados.Cluster, token string, registry *prometheus.Registry) Handler
}
type NewHandlerFunc func(_ context.Context, _ *arvados.Cluster, token string, registry *prometheus.Registry) Handler
@@
-148,9
+149,15
@@
func (c *command) RunCommand(prog string, args []string, stdin io.Reader, stdout
logger.WithError(err).Errorf("error notifying init daemon")
}
go func() {
logger.WithError(err).Errorf("error notifying init daemon")
}
go func() {
+ // Shut down server if caller cancels context
<-ctx.Done()
srv.Close()
}()
<-ctx.Done()
srv.Close()
}()
+ go func() {
+ // Shut down server if handler dies
+ <-handler.Done()
+ srv.Close()
+ }()
err = srv.Wait()
if err != nil {
return 1
err = srv.Wait()
if err != nil {
return 1