diff --git a/rpc/rpclient.go b/rpc/rpclient.go index 86ece61..5733872 100644 --- a/rpc/rpclient.go +++ b/rpc/rpclient.go @@ -115,7 +115,8 @@ func (this *RPClient) CallWithTimeout(serviceMethod string, args interface{}, re }() if this.client == nil { - return ErrRPClientNoConn + err = ErrRPClientNoConn + return err } if d <= time.Second { @@ -125,7 +126,8 @@ func (this *RPClient) CallWithTimeout(serviceMethod string, args interface{}, re call := this.client.Go(serviceMethod, args, reply, make(chan *rpc.Call, 1)) select { case <-time.After(d): - return ErrRPClientCallTimeout + err = ErrRPClientCallTimeout + return err case call = <-call.Done: err = call.Error } @@ -142,25 +144,30 @@ func (this *RPClient) CallWithTimeout(serviceMethod string, args interface{}, re dd := d - time.Now().Sub(start) if dd <= 0 { - return ErrRPClientCallTimeout + err = ErrRPClientCallTimeout + return err } select { case <-time.After(dd): - return ErrRPClientCallTimeout + err = ErrRPClientCallTimeout + return err case <-dailed: dd = d - time.Now().Sub(start) if dd <= 0 { - return ErrRPClientCallTimeout + err = ErrRPClientCallTimeout + return err } call = this.client.Go(serviceMethod, args, reply, make(chan *rpc.Call, 1)) dd = d - time.Now().Sub(start) if dd <= 0 { - return ErrRPClientCallTimeout + err = ErrRPClientCallTimeout + return err } select { case <-time.After(dd): - return ErrRPClientCallTimeout + err = ErrRPClientCallTimeout + return err case call = <-call.Done: err = call.Error }