Fix a race in tests (#7326)

This commit is contained in:
Aditya Manthramurthy 2019-03-05 08:04:17 -08:00 committed by Nitish Tiwari
parent e8e9cd3e74
commit c54b0c0ca1
1 changed files with 13 additions and 2 deletions

View File

@ -408,8 +408,19 @@ func resetGlobalConfigPath() {
}
func resetGlobalServiceDoneCh() {
close(GlobalServiceDoneCh)
GlobalServiceDoneCh = make(chan struct{})
// Repeatedly send on the service done channel, so that
// listening go-routines will quit. This works better than
// closing the channel - closing introduces a new race, as the
// current thread writes to the variable, and other threads
// listening on it, read from it.
loop:
for {
select {
case GlobalServiceDoneCh <- struct{}{}:
default:
break loop
}
}
}
// sets globalObjectAPI to `nil`.