24 lines
459 B
Erlang
24 lines
459 B
Erlang
-module(conuter).
|
|
-behaviour(gen_server).
|
|
-export([init/1, handle_cast/2, handle_call/3]).
|
|
-export([start/1, value/1, inc/1, inc/2]).
|
|
|
|
start(N) ->
|
|
gen_server.start(?MODULE, N, []).
|
|
|
|
inc(Pid) -> inc(Pid, 1).
|
|
inc(Pid, Amt) ->
|
|
gen_server:cast(Pid, {inc, Amt}).
|
|
|
|
value(Pid) ->
|
|
gen_server:call(Pid, value).
|
|
|
|
init(N) ->
|
|
{ok, N}.
|
|
|
|
handle_call(value, _From, N) ->
|
|
{reply, N, N}. % {reply, actual_reply, state}
|
|
|
|
handle_cast({inc, Amt}, N) ->
|
|
{noreply, N + Amt}.
|