]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/pprof: fix race between viewer and web command
authorRuss Cox <rsc@golang.org>
Wed, 22 Jul 2015 21:48:49 +0000 (17:48 -0400)
committerRuss Cox <rsc@golang.org>
Thu, 23 Jul 2015 03:51:39 +0000 (03:51 +0000)
Fixes #11729.

Change-Id: I6e5e23169ac1368afcbd016ed544a710aa045326
Reviewed-on: https://go-review.googlesource.com/12553
Reviewed-by: Rob Pike <r@golang.org>
src/cmd/pprof/internal/commands/commands.go

index 9570cd0440409965db320ca1d7e3730c11e4332e..9aeee5762e83ec72c0614219018daf643010cd52 100644 (file)
@@ -14,6 +14,7 @@ import (
        "os/exec"
        "runtime"
        "strings"
+       "time"
 
        "cmd/pprof/internal/plugin"
        "cmd/pprof/internal/report"
@@ -224,6 +225,11 @@ func invokeVisualizer(interactive **bool, format PostProcessor, suffix string, v
                        viewer := exec.Command(args[0], append(args[1:], tempFile.Name())...)
                        viewer.Stderr = os.Stderr
                        if err = viewer.Start(); err == nil {
+                               // The viewer might just send a message to another program
+                               // to open the file. Give that program a little time to open the
+                               // file before we remove it.
+                               time.Sleep(1 * time.Second)
+
                                if !**interactive {
                                        // In command-line mode, wait for the viewer to be closed
                                        // before proceeding