Skip to content

Commit cde813a

Browse files
committed
avoid making call to self
Signed-off-by: Alejandro M. Ramallo <[email protected]>
1 parent 745e612 commit cde813a

File tree

1 file changed

+35
-22
lines changed

1 file changed

+35
-22
lines changed

src/partisan_plumtree_broadcast.erl

Lines changed: 35 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -738,17 +738,22 @@ debug_get_peers(Node, Root, Timeout) ->
738738
%% This will not work because gen_server uses disterl
739739
%% gen_server:call({?SERVER, Node}, {get_peers, Root}, Timeout).
740740
%% TODO reconsider turning this server into a partisan_gen_server
741-
case partisan_rpc:call(Node, ?MODULE, get_peers, [Root], Timeout) of
742-
{badrpc, Reason} ->
743-
error(Reason);
744-
{_, _} = Result ->
745-
%% eqwalizer:ignore
746-
Result;
747-
{_, _, _} = Result ->
748-
%% eqwalizer:ignore
749-
Result
750-
end.
741+
case Node == partisan:node() of
742+
true ->
743+
get_peers(Root);
751744

745+
false ->
746+
case partisan_rpc:call(Node, ?MODULE, get_peers, [Root], Timeout) of
747+
{badrpc, Reason} ->
748+
error(Reason);
749+
{_, _} = Result ->
750+
%% eqwalizer:ignore
751+
Result;
752+
{_, _, _} = Result ->
753+
%% eqwalizer:ignore
754+
Result
755+
end
756+
end.
752757

753758
%% @doc return the peers for `Node' for the tree rooted at `Root'.
754759
%% Waits `Timeout' ms for a response from the server
@@ -759,15 +764,23 @@ debug_get_peers(Node, Root, Opts, Timeout) ->
759764
%% This will not work because gen_server uses disterl
760765
%% gen_server:call({?SERVER, Node}, {get_peers, Root}, Timeout).
761766
%% TODO reconsider turning this server into a partisan_gen_server
762-
case partisan_rpc:call(Node, ?MODULE, get_peers, [Root, Opts], Timeout) of
763-
{badrpc, Reason} ->
764-
error(Reason);
765-
{_, _} = Result ->
766-
%% eqwalizer:ignore
767-
Result;
768-
{_, _, _} = Result ->
769-
%% eqwalizer:ignore
770-
Result
767+
case Node == partisan:node() of
768+
true ->
769+
get_peers(Root, Opts);
770+
771+
false ->
772+
case
773+
partisan_rpc:call(Node, ?MODULE, get_peers, [Root, Opts], Timeout)
774+
of
775+
{badrpc, Reason} ->
776+
error(Reason);
777+
{_, _} = Result ->
778+
%% eqwalizer:ignore
779+
Result;
780+
{_, _, _} = Result ->
781+
%% eqwalizer:ignore
782+
Result
783+
end
771784
end.
772785

773786

@@ -1346,10 +1359,10 @@ schedule_tick(Message, Timer, Default) ->
13461359
-spec reset_peers(nodeset(), nodeset(), nodeset(), state()) -> state().
13471360

13481361
reset_peers(AllMembers, EagerPeers, LazyPeers, State) ->
1349-
MyNode = partisan:node(),
1362+
ThisNode = partisan:node(),
13501363
State#state{
1351-
common_eagers = ordsets:del_element(MyNode, EagerPeers),
1352-
common_lazys = ordsets:del_element(MyNode, LazyPeers),
1364+
common_eagers = ordsets:del_element(ThisNode, EagerPeers),
1365+
common_lazys = ordsets:del_element(ThisNode, LazyPeers),
13531366
eager_sets = maps:new(),
13541367
lazy_sets = maps:new(),
13551368
all_members = AllMembers

0 commit comments

Comments
 (0)