From a49952445f81cc9a6bd5158f00768fc1846460f4 Mon Sep 17 00:00:00 2001 From: guoguangwu Date: Sat, 30 Mar 2024 03:46:09 +0000 Subject: [PATCH] cmd/compile: close files in the startProfile function Change-Id: I803d625249890c88fbf35394a85e0b2952123620 GitHub-Last-Rev: 239b28e85741db29d852975b0d6350f8a5d68193 GitHub-Pull-Request: golang/go#66532 Reviewed-on: https://go-review.googlesource.com/c/go/+/574336 Reviewed-by: Emmanuel Odeke Auto-Submit: Emmanuel Odeke Reviewed-by: Than McIntosh Run-TryBot: Emmanuel Odeke Reviewed-by: David Chase LUCI-TryBot-Result: Go LUCI TryBot-Result: Gopher Robot --- src/cmd/compile/internal/gc/util.go | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/cmd/compile/internal/gc/util.go b/src/cmd/compile/internal/gc/util.go index b82a983d9f..dcaca892db 100644 --- a/src/cmd/compile/internal/gc/util.go +++ b/src/cmd/compile/internal/gc/util.go @@ -39,7 +39,12 @@ func startProfile() { if err := pprof.StartCPUProfile(f); err != nil { base.Fatalf("%v", err) } - base.AtExit(pprof.StopCPUProfile) + base.AtExit(func() { + pprof.StopCPUProfile() + if err = f.Close(); err != nil { + base.Fatalf("error closing cpu profile: %v", err) + } + }) } if base.Flag.MemProfile != "" { if base.Flag.MemProfileRate != 0 { @@ -77,6 +82,9 @@ func startProfile() { if err := pprof.Lookup("heap").WriteTo(f, format); err != nil { base.Fatalf("%v", err) } + if err = f.Close(); err != nil { + base.Fatalf("error closing memory profile: %v", err) + } }) } else { // Not doing memory profiling; disable it entirely. @@ -112,6 +120,11 @@ func startProfile() { if err := tracepkg.Start(f); err != nil { base.Fatalf("%v", err) } - base.AtExit(tracepkg.Stop) + base.AtExit(func() { + tracepkg.Stop() + if err = f.Close(); err != nil { + base.Fatalf("error closing trace profile: %v", err) + } + }) } } -- 2.48.1