-module(template).
-record(stat, {}).
-export([start/1, stop/0, reload/0, init/1, loop/1]).
start(Opts) ->
Stat = parse_opts(Opts),
Pid = erlang:spawn(fun() -> init(Stat) end),
register(?MODULE, Pid),
{ok, Pid}.
stop() ->
case whereis(?MODULE) of
undefined ->
ok;
Pid ->
erlang:exit(Pid, kill)
end.
reload() ->
code:purge(?MODULE),
code:delete(?MODULE).
init(Stat) ->
%% Do Something
loop(Stat).
loop(Stat) ->
receive
Any ->
%% Process Received Message
?MODULE:loop(Stat)
after
1000 ->
?MODULE:loop(Stat)
end.
parse_opts(Opts) ->
#stat{}.
本文介绍了一个Erlang模块的启动流程及管理方法,包括进程注册、状态记录、消息处理循环等核心功能实现。此外还涉及了模块的停止、重载机制,并通过具体的函数解释了这些操作的具体实现。
2321

被折叠的 条评论
为什么被折叠?



