diff --git a/cmd/clair/main.go b/cmd/clair/main.go index 8b129bb7..d5aa90b0 100644 --- a/cmd/clair/main.go +++ b/cmd/clair/main.go @@ -67,25 +67,30 @@ func main() { // Enable CPU Profiling if specified if *flagCPUProfilePath != "" { - startCPUProfiling(*flagCPUProfilePath) - defer stopCPUProfiling() + defer stopCPUProfiling(startCPUProfiling(*flagCPUProfilePath)) } clair.Boot(config) } -func startCPUProfiling(path string) { +func startCPUProfiling(path string) *os.File { f, err := os.Create(path) if err != nil { log.Fatalf("failed to create profile file: %s", err) } - defer f.Close() - pprof.StartCPUProfile(f) + err = pprof.StartCPUProfile(f) + if err != nil { + log.Fatalf("failed to start CPU profiling: %s", err) + } + log.Info("started CPU profiling") + + return f } -func stopCPUProfiling() { +func stopCPUProfiling(f *os.File) { pprof.StopCPUProfile() + f.Close() log.Info("stopped CPU profiling") }