@@ -103,7 +103,8 @@ func (g *generator) generateFromSignals() {
103
103
go func () {
104
104
defer g .wg .Done ()
105
105
106
- sigChan := newSignalChannel ()
106
+ sigChan , cleanup := newSignalChannel ()
107
+ defer cleanup ()
107
108
for {
108
109
sig := <- sigChan
109
110
log .Printf ("Received signal: %s\n " , sig )
@@ -148,7 +149,8 @@ func (g *generator) generateAtInterval() {
148
149
go func (cfg config.Config ) {
149
150
defer g .wg .Done ()
150
151
151
- sigChan := newSignalChannel ()
152
+ sigChan , cleanup := newSignalChannel ()
153
+ defer cleanup ()
152
154
for {
153
155
select {
154
156
case <- ticker .C :
@@ -217,7 +219,8 @@ func (g *generator) generateFromEvents() {
217
219
go func () {
218
220
// channel will be closed by go-dockerclient
219
221
eventChan := make (chan * docker.APIEvents , 100 )
220
- sigChan := newSignalChannel ()
222
+ sigChan , cleanup := newSignalChannel ()
223
+ defer cleanup ()
221
224
222
225
for {
223
226
watching := false
@@ -469,11 +472,10 @@ func (g *generator) getContainers() ([]*context.RuntimeContainer, error) {
469
472
470
473
}
471
474
472
- func newSignalChannel () <- chan os.Signal {
475
+ func newSignalChannel () ( <- chan os.Signal , func ()) {
473
476
sig := make (chan os.Signal , 1 )
474
477
signal .Notify (sig , syscall .SIGHUP , syscall .SIGINT , syscall .SIGTERM )
475
-
476
- return sig
478
+ return sig , func () { signal .Stop (sig ) }
477
479
}
478
480
479
481
func newDebounceChannel (input chan * docker.APIEvents , wait * config.Wait ) chan * docker.APIEvents {
0 commit comments