From c71419649877520caa35dfcbb83a46d815a6b63e Mon Sep 17 00:00:00 2001 From: duanhf2012 Date: Wed, 1 Apr 2020 17:43:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Drpc=20error=20nil=E5=80=BC?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rpc/client.go | 1 + rpc/server.go | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/rpc/client.go b/rpc/client.go index da94948..ea353b9 100644 --- a/rpc/client.go +++ b/rpc/client.go @@ -178,6 +178,7 @@ func (slf *Client) Run(){ }else { delete(slf.pending,respone.Seq) slf.pendingLock.Unlock() + v.Err = nil //*****如果对方返回nil,测试跨node时,调用其他服务rpc不存在的情况 if len(respone.Returns) >0 { err = processor.Unmarshal(respone.Returns,v.Reply) diff --git a/rpc/server.go b/rpc/server.go index a8d9f13..155536c 100644 --- a/rpc/server.go +++ b/rpc/server.go @@ -213,7 +213,12 @@ func (slf *Server) rpcHandlerGo(noReply bool,handlerName string,methodName strin if noReply == false { req.requestHandle = func(Returns interface{},Err *RpcError){ - pCall.Err = Err + if Err!=nil { + pCall.Err = Err + }else{ + pCall.Err = nil + } + pCall.done <- pCall } } @@ -245,7 +250,12 @@ func (slf *Server) rpcHandlerAsyncGo(callerRpcHandler IRpcHandler,noReply bool,h if noReply == false { req.requestHandle = func(Returns interface{},Err *RpcError){ - pCall.Err = Err + if Err == nil { + pCall.Err = nil + }else{ + pCall.Err = Err + } + if Returns!=nil { pCall.Reply = Returns }