服务源代码:
-module(gen_server_1).
|-behavior(gen_server).
.. (up a dir) |-export([start/0]).
/home/wxserver/erlang/ |-export([init/1, handle_call/3, handle_cast/2]).
echo.beam |
echo.erl |start()->
gen_server_1.erl | io:format("gen_server_1:start()"),
m.beam | gen_server:start_link({local,gen_server_1},gen_server_1,[],[]).
m.erl |
~ |init(Argvs)->
~ | {ok,[]}.
~ |
~ |handle_call({call1,Num},_From,Status)->
~ | io:format("call1"),
~ | {reply,ok,Status}.
~ |
~ |handle_cast({cast1,Num},Status)->
~ | io:format("cast1"),
~ | {noreply,Status}.
~ |
~ |handle_info({info1,Pid,Reason},Status)->
~ | io:format("info1"),
~ | {noreply,Status}.
~ |
~ |terminate(normal,Status)->
~ | io:format("terminate"),
~ | ok.
更新后的代码
-module(gen_server_1).
|-behavior(gen_server).
.. (up a dir) |-export([start/0]).
/home/wxserver/erlang/ |-export([init/1, handle_call/3, handle_cast/2]).
echo.beam |
echo.erl |start()->
gen_server_1.erl | io:format("gen_server_1:start()"),
m.beam | gen_server:start_link({local,gen_server_1},gen_server_1,[],[]).
m.erl |
~ |init(Argvs)->
~ | {ok,[]}.
~ |
~ |handle_call({call1,Num},_From,Status)->
~ | io:format("new call1"),
~ | {reply,ok,Status}.
~ |
~ |handle_cast({cast1,Num},Status)->
~ | io:format("cast1"),
~ | {noreply,Status}.
~ |
~ |handle_info({info1,Pid,Reason},Status)->
~ | io:format("info1"),
~ | {noreply,Status}.
~ |
~ |terminate(normal,Status)->
~ | io:format("terminate"),
~ | ok.
使用过程
> c(gen_server_1).
> gen_server_1:start().
> gen_server:call(gen_server_1,{call1,1}).
结果:call1ok
更新代码以后
> c(gen_server_1).
> code:soft_purge(gen_server_1).
> code:load_file(gen_server_1).
再次调用
> gen_server:call(gen_server_1,{call1,1}).
结果:new call1ok