Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -module(bad_server).
- -export([start_link/0, init/1]).
- % sys callbacks
- -export([system_continue/3, system_terminate/4]).
- start_link() ->
- proc_lib:start_link(?MODULE, init, [self()]).
- init(Parent) ->
- io:format("Server ~p started.~n", [self()]),
- process_flag(trap_exit, true),
- proc_lib:init_ack({ok, self()}),
- loop(Parent).
- loop(Parent) ->
- receive
- {system, From, Msg} ->
- sys:handle_system_msg(Msg, From, Parent, ?MODULE, [], []);
- {'EXIT', Parent, shutdown} ->
- io:format("~p received shutdown request from parent. "
- "Will sleep for 5 secs instead.~n",
- [self()]),
- timer:sleep(5000),
- io:format("Termination error on ~p. Should not be here!~n", [self()]);
- Msg ->
- io:format("Unexpected msg received by ~p: ~p~n", [self(), Msg]),
- loop(Parent)
- end.
- system_continue(Parent, _Debug, []) ->
- loop(Parent).
- system_terminate(Reason, _Parent, _Debug, _State) ->
- exit(Reason).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement