Erlang start gen_server заблокированный код - PullRequest
1 голос
/ 01 мая 2011

В моем коде erlang есть gen_server.И когда я пытаюсь запустить его, следующий код после этого не работает.Например:

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

Теперь io: format / 1 не работает.И если я запускаю gen_server с порождением:

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

Теперь формат io: работает.Почему?

Спасибо.

1 Ответ

2 голосов
/ 04 мая 2011

Я предполагаю, что функция start_link в вашем модуле my_server вызывает функцию gen_server:start_link/3 или gen_server:start_link/4.

gen_server:start_link, в свою очередь, вызовет функцию init вашего my_server модуля. Я полагаю, что ваша init функция является блокирующим вызовом, поэтому ваша первоначальная часть кода не возвращается.

...