Skip to content

Instantly share code, notes, and snippets.

@jkvor
Created February 12, 2010 01:08
Show Gist options
  • Save jkvor/302185 to your computer and use it in GitHub Desktop.
Save jkvor/302185 to your computer and use it in GitHub Desktop.
-module(p).
-export([start_link/0, print_state/0, init/1, loop/1,
system_continue/3, system_code_change/4, system_terminate/4]).
start_link() ->
proc_lib:start_link(?MODULE, init, [self()]).
print_state() ->
{ok, Result} = gen:call(?MODULE, '$p', print_state),
Result.
init(Parent) ->
register(?MODULE, self()),
proc_lib:init_ack(Parent, {ok, self()}),
?MODULE:loop(0).
loop(State) ->
receive
{'$p', {From, Mref}, print_state} ->
io:format("state: ~p~n", [State]),
gen:reply({From, Mref}, ok),
?MODULE:loop(State+1);
{system, From, Msg} ->
sys:handle_system_msg(Msg, From, self(), ?MODULE, [], State)
end.
system_continue(_Parent, _NDebug, State) ->
?MODULE:loop(State).
system_code_change(State, ?MODULE, _OldVsn, _Extra) ->
{ok, State}.
system_terminate(_Reason, _Parent, _Debug, _State) ->
ok.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment