From 5a21324f3b61190a355ec0e0ced787ba672e4406 Mon Sep 17 00:00:00 2001 From: boyce Date: Thu, 26 Nov 2020 12:10:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BC=82=E6=AD=A5Responder?= =?UTF-8?q?=E6=9C=89=E6=95=88=E6=80=A7=E5=88=A4=E6=96=AD=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rpc/rpc.go | 4 ++++ rpc/rpchandler.go | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/rpc/rpc.go b/rpc/rpc.go index 660b225..c4911d0 100644 --- a/rpc/rpc.go +++ b/rpc/rpc.go @@ -25,6 +25,10 @@ type RpcResponse struct { type Responder = RequestHandler +func (r *Responder) IsInvalid() bool { + return reflect.ValueOf(*r).Pointer() == reflect.ValueOf(reqHandlerNull).Pointer() +} + //var rpcResponsePool sync.Pool var rpcRequestPool sync.Pool var rpcCallPool sync.Pool diff --git a/rpc/rpchandler.go b/rpc/rpchandler.go index 2a60825..622d098 100644 --- a/rpc/rpchandler.go +++ b/rpc/rpchandler.go @@ -253,7 +253,7 @@ func (handler *RpcHandler) HandlerRpcRequest(request *RpcRequest) { //单协程或非异步调用时直接使用预置对象 if handler.IsSingleCoroutine() && v.hasResponder==false { iParam = v.inParam - }else{ + }else if v.inParam != nil { iParam = reflect.New(v.inParamValue.Type().Elem()).Interface() }