From 145bf7b82bf51e9a8c6eb3b3c2361a79b450e0bb Mon Sep 17 00:00:00 2001 From: jichangjun Date: Wed, 3 Mar 2021 18:16:38 +0800 Subject: [PATCH] fix: exit successfully when catch specific signal --- pkg/cover/instrument.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkg/cover/instrument.go b/pkg/cover/instrument.go index ff4f20d..4719e8f 100644 --- a/pkg/cover/instrument.go +++ b/pkg/cover/instrument.go @@ -286,8 +286,6 @@ func deregisterSelf(address []string) ([]byte, error) { type CallbackFunc func() func watchSignal(fn CallbackFunc) { - defer fn() - // init signal c := make(chan os.Signal, 1) signal.Notify(c, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT) @@ -296,7 +294,8 @@ func watchSignal(fn CallbackFunc) { log.Printf("get a signal %s", si.String()) switch si { case syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT: - return + fn() + os.Exit(0) // Exit successfully. case syscall.SIGHUP: default: return