Merge pull request #1191 from prattmic/profile

debug: properly handle interrupted profiles
This commit is contained in:
Alexander Neumann 2017-09-03 09:49:46 +02:00
commit 0ee1650f82
3 changed files with 13 additions and 18 deletions

View file

@ -19,10 +19,6 @@ var (
memProfilePath string
cpuProfilePath string
insecure bool
prof interface {
Stop()
}
)
func init() {
@ -54,10 +50,21 @@ func runDebug() error {
return errors.Fatal("only one profile (memory or CPU) may be activated at the same time")
}
var prof interface {
Stop()
}
if memProfilePath != "" {
prof = profile.Start(profile.Quiet, profile.MemProfile, profile.ProfilePath(memProfilePath))
prof = profile.Start(profile.Quiet, profile.NoShutdownHook, profile.MemProfile, profile.ProfilePath(memProfilePath))
} else if cpuProfilePath != "" {
prof = profile.Start(profile.Quiet, profile.CPUProfile, profile.ProfilePath(cpuProfilePath))
prof = profile.Start(profile.Quiet, profile.NoShutdownHook, profile.CPUProfile, profile.ProfilePath(cpuProfilePath))
}
if prof != nil {
AddCleanupHandler(func() error {
prof.Stop()
return nil
})
}
if insecure {
@ -66,9 +73,3 @@ func runDebug() error {
return nil
}
func shutdownDebug() {
if prof != nil {
prof.Stop()
}
}

View file

@ -4,6 +4,3 @@ package main
// runDebug is a noop without the debug tag.
func runDebug() error { return nil }
// shutdownDebug is a noop without the debug tag.
func shutdownDebug() {}

View file

@ -52,9 +52,6 @@ directories in an encrypted repository stored on different backends.
return nil
},
PersistentPostRun: func(*cobra.Command, []string) {
shutdownDebug()
},
}
var logBuffer = bytes.NewBuffer(nil)