0
我有一個初始化函數,我稱之爲START_SERVER:spawn_link正在啓動一個無限循環,但不返回?
start_server() ->
spawn_link(game_loop(0,0)).
目的是啓動一個新的進程,開始循環,等待有人來發送消息有:
game_loop(X,Y) ->
receive
{move, left} ->
tell_client(X+1,Y),
game_loop(X+1,Y);
{move, right} ->
tell_client(X-1,Y),
game_loop(X-1,Y)
end.
我thaught是start_server會返回Pid,以便我可以在Erlang終端中寫下類似這樣的內容:
> Server = server:start_server().
然後使用變量服務器通過類似的功能處理的服務器:
move_left(Pid) ->
Pid ! {move, left}.
但是,這並不工作,因爲START_SERVER()永遠不會返回,這是爲什麼?