Use erlang:halt/0,1
.
I trying to exit but getting an exception bad argument called as exit(undefined,kill)
-
18-07-2023 - |
Question
I'm trying to write a function which simply kills my program. It is called quitChat. However I get this error when I call the function messenger:quitChat()
.
** exception error: bad argument
in function exit/2
called as exit(undefined,kill)
in call from messenger:quitChat/0 (messenger.erl, line 26)
So far I am using this code:
-module(messenger).
-export([start_server/0, server/1, logon/1, logoff/0, message/2, client/2,
requestChat/1, quitChat/0]).
server_node() ->
messenger@timberlake.
server(User_List) ->
receive
{From, logon, Name} ->
New_User_List = server_logon(From, Name, User_List),
server(New_User_List);
{From, logoff} ->
New_User_List = server_logoff(From, User_List),
server(New_User_List);
{From, message_to, To, Message} ->
server_transfer(From, To, Message, User_List),
io:format("list is now: ~p~n", [User_List]),
server(User_List)
end.
start_server() ->
register(messenger, spawn(messenger, server, [[]])).
quitChat() ->
exit(whereis(messenger), kill).
Solution
OTHER TIPS
Change your quitChat in this way:
quitChat() ->
case whereis(messenger) of
undefined -> ok; % No registered process with name messenger
Pid -> exit(Pid, kill)
end.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow