Advertisement
Guest User

Untitled

a guest
Jul 6th, 2015
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. -module(bad_server).
  2. -export([start_link/0, init/1]).
  3.  
  4. % sys callbacks
  5. -export([system_continue/3, system_terminate/4]).
  6.  
  7. start_link() ->
  8. proc_lib:start_link(?MODULE, init, [self()]).
  9.  
  10. init(Parent) ->
  11. io:format("Server ~p started.~n", [self()]),
  12. process_flag(trap_exit, true),
  13. proc_lib:init_ack({ok, self()}),
  14. loop(Parent).
  15.  
  16. loop(Parent) ->
  17. receive
  18. {system, From, Msg} ->
  19. sys:handle_system_msg(Msg, From, Parent, ?MODULE, [], []);
  20. {'EXIT', Parent, shutdown} ->
  21. io:format("~p received shutdown request from parent. "
  22. "Will sleep for 5 secs instead.~n",
  23. [self()]),
  24. timer:sleep(5000),
  25. io:format("Termination error on ~p. Should not be here!~n", [self()]);
  26. Msg ->
  27. io:format("Unexpected msg received by ~p: ~p~n", [self(), Msg]),
  28. loop(Parent)
  29. end.
  30.  
  31. system_continue(Parent, _Debug, []) ->
  32. loop(Parent).
  33.  
  34. system_terminate(Reason, _Parent, _Debug, _State) ->
  35. exit(Reason).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement