Простой Распределенный Эрланг - PullRequest
2 голосов
/ 17 ноября 2010

У меня есть простой модуль:

-module(dist).
-compile([add/3]).
add(From,X,Y) ->
    From ! X+Y.

И я запускаю два узла.

Один с

erl -sname foo 

и еще один с

erl -sname bar

На узле бара я делаю:

> c(dist).
{ok,dist}
> self().
<0.37.0>
> spawn('foo@unknown-00-23-6c-83-af-bd', dist, add, [self(), 3, 5]).

Но я получаю ответ:

Error in process <0.48.0> on node 'foo@unknown-00-23-6c-83-af-bd' with exit value: {undef,[{dist,add,[<8965.37.0>,3,5]}]}

Что означает эта ошибка? Я задавался вопросом, означает ли это, что мой узел foo не определил этот модуль? Я не думал, что это нужно, но проблема не была решена компиляцией dist в узле foo, поэтому я думаю, что это не проблема.

Ответы [ 2 ]

7 голосов
/ 17 ноября 2010

Экспорт дополнения / 3. Вместо опции компиляции.

-export([add/3]).
0 голосов
/ 17 ноября 2010

если в первом узле вы используете nl (модуль), то луч этого модуля будет загружен на все подключенные узлы

...