Не могу понять с чем связана ошибка вызова rpc:call
Мне нужно организовать взаимодействие клиента и сервера в кластере. Код клиента:
-module(cli).
-export([stop/0, sum/1, mul/1]).
stop() -> call(stop, []).
sum(List) -> call(sum, List).
mul(List) -> call(mul, List).
%% Мы скрываем формат передачи сообщений за
%% функциональным интерфейсом.
call(Message,List) ->
server ! {request, self(), Message, List},
receive
{reply, Reply} -> Reply
end.
Код сервера:
-module(server).
-export([start/0]).
-export([init/0]).
start() ->
register(server, spawn(server, init, [])).
init() ->
loop().
loop() ->
receive
{request, Pid, sum, List} ->
ReplyOne = sum(List, Pid),
reply(Pid, ReplyOne),
loop();
{request, Pid ,mul, List} ->
ReplyTwo = mul(List, Pid),
reply(Pid, ReplyTwo),
loop();
{request, Pid, stop} ->
reply(Pid, ok)
end.
reply(Pid, Reply) ->
Pid ! {reply, Reply}.
sum([H|T], _Pid) ->
lists:foldl(fun(X, Sum) -> X + Sum end, 0, [H|T]).
mul([H|T], _Pid) ->
lists:foldl(fun(X, Prod) -> X * Prod end, 1, [H|T]).
После вызова rpc:call я получаю следующую ошибку:
([email protected])4> rpc:call('[email protected]',cli,sum,[1,23,4,5]).
{badrpc,{'EXIT',{undef,[{cli,sum,[1,23,4,5],[]}]}}}
([email protected])5>
Заранее исключу возможную причину(в списке подключённых узлов есть та, что я передаю в функцию):
([email protected])5> [node()|nodes()].
['[email protected]','[email protected]']
([email protected])6>