Add badtcp clause to handle gen_rpc (#2314)

This commit is contained in:
YoukiLin 2019-03-16 18:23:18 +08:00 committed by tigercl
parent 901bbdedd6
commit 29f4faa7dd
1 changed files with 23 additions and 3 deletions

View File

@ -21,10 +21,30 @@
-define(RPC, gen_rpc).
call(Node, Mod, Fun, Args) ->
?RPC:call(Node, Mod, Fun, Args).
filter_result(?RPC:call(Node, Mod, Fun, Args)).
multicall(Nodes, Mod, Fun, Args) ->
?RPC:multicall(Nodes, Mod, Fun, Args).
filter_results(?RPC:multicall(Nodes, Mod, Fun, Args)).
cast(Node, Mod, Fun, Args) ->
?RPC:cast(Node, Mod, Fun, Args).
filter_result(?RPC:cast(Node, Mod, Fun, Args)).
filter_result(Delivery) ->
case Delivery of
{badrpc, Reason} -> {badrpc, Reason};
{badtcp, Reason} -> {badrpc, Reason};
Delivery1 -> Delivery1
end.
filter_results(Deliverys) ->
filter_results(Deliverys, []).
filter_results([], Acc) ->
Acc;
filter_results([Delivery | WaitDelivery], Acc) ->
case Delivery of
{badrpc, Reason} -> [{badrpc, Reason} | Acc], filter_results(WaitDelivery, Acc);
{badtcp, Reason} -> [{badrpc, Reason} | Acc], filter_results(WaitDelivery, Acc);
Delivery1 -> [Delivery1 | Acc], filter_results(WaitDelivery, Acc)
end.