Skip to content

Commit

Permalink
chore(signal): Remove DefaultRecovery when NewServer (#79)
Browse files Browse the repository at this point in the history
Signed-off-by: Flc゛ <four_leaf_clover@foxmail.com>
  • Loading branch information
flc1125 authored Jan 29, 2024
1 parent 75840ce commit 3168cbf
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 14 deletions.
1 change: 1 addition & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ require (
golang.org/x/arch v0.3.0 // indirect
golang.org/x/crypto v0.17.0 // indirect
golang.org/x/net v0.17.0 // indirect
golang.org/x/sync v0.4.0 // indirect
golang.org/x/sys v0.16.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917 // indirect
google.golang.org/grpc v1.60.1 // indirect
Expand Down
4 changes: 4 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -96,13 +96,17 @@ golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k=
golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE=
golang.org/x/sync v0.4.0 h1:zxkM55ReGkDlKSM+Fu41A+zmbZuaPVbGMzvvdUPznYQ=
golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU=
golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/genproto v0.0.0-20231212172506-995d672761c0 h1:YJ5pD9rF8o9Qtta0Cmy9rdBwkSjrTCT6XTiUQVOtIos=
google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97 h1:W18sezcAYs+3tDZX4F80yctqa12jcP1PUS2gQu1zTPU=
google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917 h1:6G8oQ016D88m1xAKljMlBOOGWDZkes4kMhgGFlf8WcQ=
google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917/go.mod h1:xtjpI3tXFPP051KaWnhvxkiubL/6dJ18vLVf7q2pTOU=
google.golang.org/grpc v1.60.1 h1:26+wFr+cNqSGFcOXcabYC0lUVJVRa2Sb2ortSK7VrEU=
Expand Down
2 changes: 1 addition & 1 deletion signal/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ func main() {

func newSignalServer() *signal.Server {
srv := signal.NewServer(
signal.WithRecoveryHandler(signal.DefaultRecoveryHandler),
signal.WithRecovery(signal.DefaultRecovery),
)

srv.Register(&exampleHandler{}, &example2Handler{})
Expand Down
22 changes: 10 additions & 12 deletions signal/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ import (
"github.com/go-kratos/kratos/v2/log"
)

var DefaultRecoveryHandler = func(err interface{}, sig os.Signal, handler Handler) {
var DefaultRecovery = func(err interface{}, sig os.Signal, handler Handler) {
log.Errorf("[Signal] handler panic (%s): %v", sig, err)
}

type Server struct {
handlers []Handler
stoped chan struct{}
recoveryHandler func(interface{}, os.Signal, Handler)
handlers []Handler
stoped chan struct{}
recovery func(interface{}, os.Signal, Handler)
}

type Option func(*Server)
Expand All @@ -26,10 +26,10 @@ func AddHandler(handler ...Handler) Option {
}
}

func WithRecoveryHandler(handler func(interface{}, os.Signal, Handler)) Option {
func WithRecovery(handler func(interface{}, os.Signal, Handler)) Option {
return func(s *Server) {
if handler != nil {
s.recoveryHandler = handler
s.recovery = handler
}
}
}
Expand All @@ -44,10 +44,6 @@ func NewServer(opts ...Option) *Server {
opt(server)
}

if server.recoveryHandler == nil {
server.recoveryHandler = DefaultRecoveryHandler
}

return server
}

Expand Down Expand Up @@ -107,8 +103,10 @@ func (s *Server) Stop(context.Context) error {

func (s *Server) handle(sig os.Signal, handler Handler) {
defer func() {
if err := recover(); err != nil {
s.recoveryHandler(err, sig, handler)
if s.recovery != nil {
if err := recover(); err != nil {
s.recovery(err, sig, handler)
}
}
}()

Expand Down
2 changes: 1 addition & 1 deletion signal/server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ exampleHandler signal: user defined signal 2

func newServer() *Server {
srv := NewServer(
WithRecoveryHandler(func(err interface{}, signal os.Signal, handler Handler) {
WithRecovery(func(err interface{}, signal os.Signal, handler Handler) {
mu.Lock()
defer mu.Unlock()
buffer.WriteString(fmt.Sprintf("signal: %s, handler: %T, err: %v\n", signal, handler, err))
Expand Down

0 comments on commit 3168cbf

Please sign in to comment.