(Rpc<TArgument, TResult> p, RaftRpc<TArgument, TResult> rpc)
| 158 | } |
| 159 | |
| 160 | @SuppressWarnings("SameReturnValue") |
| 161 | private <TArgument extends Serializable, TResult extends Serializable> |
| 162 | long sendForWaitHandle(Rpc<TArgument, TResult> p, RaftRpc<TArgument, TResult> rpc) { |
| 163 | var net = (RaftRpc<TArgument, TResult>)p; |
| 164 | if (net.isTimeout() || isRetryError(net.getResultCode())) |
| 165 | return Procedure.Success; // Pending Will Resend. |
| 166 | |
| 167 | long requestId = rpc.getUnique().getRequestId(); |
| 168 | if (pending.remove(requestId) != null) { |
| 169 | rpc.setRequest(net.isRequest()); |
| 170 | rpc.Result = net.Result; |
| 171 | rpc.setSender(net.getSender()); |
| 172 | rpc.setResultCode(net.getResultCode()); |
| 173 | |
| 174 | if (rpc.getResultCode() == Procedure.RaftApplied) |
| 175 | rpc.setIsTimeout(false); |
| 176 | if (isDebugEnabled) { |
| 177 | logger.debug("sendForWaitHandle Rpc={} RequestId={} ResultCode={} Sender={}", |
| 178 | rpc.getClass().getSimpleName(), requestId, rpc.getResultCode(), rpc.getSender()); |
| 179 | } |
| 180 | rpc.future.setResult(rpc); |
| 181 | } |
| 182 | return Procedure.Success; |
| 183 | } |
| 184 | |
| 185 | public <TArgument extends Serializable, TResult extends Serializable> |
| 186 | TaskCompletionSourceX<RaftRpc<TArgument, TResult>> sendForWait(RaftRpc<TArgument, TResult> rpc) { |
no test coverage detected