修复rpc error nil值问题

This commit is contained in:
duanhf2012
2020-04-01 17:43:24 +08:00
parent c1d6d44fbb
commit c714196498
2 changed files with 13 additions and 2 deletions

View File

@@ -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)

View File

@@ -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
}