@@ -103,7 +103,8 @@ func (g *generator) generateFromSignals() {
103103 go func () {
104104 defer g .wg .Done ()
105105
106- sigChan := newSignalChannel ()
106+ sigChan , cleanup := newSignalChannel ()
107+ defer cleanup ()
107108 for {
108109 sig := <- sigChan
109110 log .Printf ("Received signal: %s\n " , sig )
@@ -148,7 +149,8 @@ func (g *generator) generateAtInterval() {
148149 go func (cfg config.Config ) {
149150 defer g .wg .Done ()
150151
151- sigChan := newSignalChannel ()
152+ sigChan , cleanup := newSignalChannel ()
153+ defer cleanup ()
152154 for {
153155 select {
154156 case <- ticker .C :
@@ -217,7 +219,8 @@ func (g *generator) generateFromEvents() {
217219 go func () {
218220 // channel will be closed by go-dockerclient
219221 eventChan := make (chan * docker.APIEvents , 100 )
220- sigChan := newSignalChannel ()
222+ sigChan , cleanup := newSignalChannel ()
223+ defer cleanup ()
221224
222225 for {
223226 watching := false
@@ -469,11 +472,10 @@ func (g *generator) getContainers() ([]*context.RuntimeContainer, error) {
469472
470473}
471474
472- func newSignalChannel () <- chan os.Signal {
475+ func newSignalChannel () ( <- chan os.Signal , func ()) {
473476 sig := make (chan os.Signal , 1 )
474477 signal .Notify (sig , syscall .SIGHUP , syscall .SIGINT , syscall .SIGTERM )
475-
476- return sig
478+ return sig , func () { signal .Stop (sig ) }
477479}
478480
479481func newDebounceChannel (input chan * docker.APIEvents , wait * config.Wait ) chan * docker.APIEvents {
0 commit comments