【发布时间】:2015-01-03 11:45:03
【问题描述】:
我有以下 Erlang 代码:
#!/usr/bin/env escript
%%! -pz ../deps/amqp_client ../deps/rabbit_common ../deps/amqp_client/ebin ../deps/rabbit_common/ebin
% RMQ module
-module(rmq).
-export([main/1, send/1, validate/0, test/0]).
-include_lib("../deps/amqp_client/include/amqp_client.hrl").
main(_) ->
%send(<<"test_esio">>),
%validate(),
Pid = spawn(rmq, test, []),
% Pid = spawn(fun() -> test() end), <= I've tried this way too
Pid ! s.
test() ->
receive
s ->
io:format("BAR ~n"),
send(<<"esio">>),
test();
get ->
validate(),
test();
_ ->
io:format("FOO"),
test()
end.
我运行这个:
excript rmq.erl
此代码不起作用。看起来 spawn 不起作用。
如果我从 main 运行它,我的其余代码可以正常工作,函数 send 和 validate 可以正常工作(我已经对其进行了评论)。我做错了什么?
对不起,也许这是一个愚蠢的问题,但我是 erlang 的初学者。我已经尝试在互联网和书籍中搜索答案,但我失败了......
【问题讨论】:
标签: erlang actor erlang-escript