Merge pull request #335 from docker/fix-metrics-goroutine

Make sure the metrics goroutine is scheduled
This commit is contained in:
Djordje Lukic 2020-07-03 15:01:14 +02:00 committed by GitHub
commit c4c0c24dca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 6 additions and 0 deletions

View File

@ -56,12 +56,17 @@ const (
// Track sends the tracking analytics to Docker Desktop // Track sends the tracking analytics to Docker Desktop
func Track(context string, args []string, flags *flag.FlagSet) { func Track(context string, args []string, flags *flag.FlagSet) {
wasIn := make(chan bool)
// Fire and forget, we don't want to slow down the user waiting for DD // Fire and forget, we don't want to slow down the user waiting for DD
// metrics endpoint to respond. We could lose some events but that's ok. // metrics endpoint to respond. We could lose some events but that's ok.
go func() { go func() {
defer func() { defer func() {
_ = recover() _ = recover()
}() }()
wasIn <- true
command := getCommand(args, flags) command := getCommand(args, flags)
if command != "" { if command != "" {
c := NewClient() c := NewClient()
@ -71,6 +76,7 @@ func Track(context string, args []string, flags *flag.FlagSet) {
}) })
} }
}() }()
<-wasIn
} }
func getCommand(args []string, flags *flag.FlagSet) string { func getCommand(args []string, flags *flag.FlagSet) string {