Commit e9407ae5 authored by Joe Tsai's avatar Joe Tsai Committed by Joe Tsai

cmd/pprof: remove tempDir when no longer needed

The pprof tools properly cleans up all files it creates, but forgets
to clean up the temporary directory itself. This CL fixes that.

Fixes #13863

Change-Id: I1151c36cdad5ace7cc97e7e04001cf0149ef0f63
Reviewed-on: https://go-review.googlesource.com/23019Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
parent 2ffb3e5d
......@@ -197,6 +197,7 @@ func makeVizTmpDir() error {
if err != nil {
return err
}
tempfile.DeferDelete(name)
vizTmpDir = name
return nil
}
......
......@@ -27,18 +27,19 @@ func New(dir, prefix, suffix string) (*os.File, error) {
var tempFiles []string
var tempFilesMu = sync.Mutex{}
// DeferDelete marks a file to be deleted by next call to Cleanup()
// DeferDelete marks a file or directory to be deleted by next call to Cleanup.
func DeferDelete(path string) {
tempFilesMu.Lock()
tempFiles = append(tempFiles, path)
tempFilesMu.Unlock()
}
// Cleanup removes any temporary files selected for deferred cleaning.
// Cleanup removes any temporary files or directories selected for deferred cleaning.
// Similar to defer semantics, the nodes are deleted in LIFO order.
func Cleanup() {
tempFilesMu.Lock()
for _, f := range tempFiles {
os.Remove(f)
for i := len(tempFiles) - 1; i >= 0; i-- {
os.Remove(tempFiles[i])
}
tempFiles = nil
tempFilesMu.Unlock()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment