From 3bab4ef68da5334a1aac558ec7bee53f6bf15cfc Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Wed, 22 Jul 2015 17:48:49 -0400 Subject: [PATCH] cmd/pprof: fix race between viewer and web command Fixes #11729. Change-Id: I6e5e23169ac1368afcbd016ed544a710aa045326 Reviewed-on: https://go-review.googlesource.com/12553 Reviewed-by: Rob Pike --- src/cmd/pprof/internal/commands/commands.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/cmd/pprof/internal/commands/commands.go b/src/cmd/pprof/internal/commands/commands.go index 9570cd0440..9aeee5762e 100644 --- a/src/cmd/pprof/internal/commands/commands.go +++ b/src/cmd/pprof/internal/commands/commands.go @@ -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 -- 2.50.0