Erlang启动gen_server阻止代码

时间:2011-05-01 16:33:28

标签: erlang spawn gen-server

我的erlang代码中有gen_server。当我尝试运行它时,下面的代码不起作用。例如:

.......
my_server:start_link().
io:format("AAAAAAAAAAAAAAAAAAA"),
.....

现在io:format / 1不起作用。如果我用spawn运行gen_server:

......
spawn(fun() -> my_server:start_link() end)
io:format("AAAAAAAAAAAAAAAAA")
......

现在io:格式有效。为什么呢?

谢谢。

1 个答案:

答案 0 :(得分:2)

我认为start_link模块中的my_server函数会调用gen_server:start_link/3gen_server:start_link/4函数。

gen_server:start_link将依次调用init模块的my_server功能。我猜你的init函数是一个阻塞调用,这就是你的初始代码片段没有返回的原因。