From a12b169b7217e036f3bf31d25df51bf9d0b21eb8 Mon Sep 17 00:00:00 2001 From: zeusfaber Date: Sun, 1 Feb 2009 14:18:02 -0800 Subject: [PATCH] cleaned up a couple things, better disconnect --- src/merle.erl | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/merle.erl b/src/merle.erl index b3d57eb..aa261e5 100644 --- a/src/merle.erl +++ b/src/merle.erl @@ -50,7 +50,7 @@ -export([ stats/0, stats/1, version/0, getkey/1, delete/2, set/4, add/4, replace/2, replace/4, cas/5, set/2, flushall/0, flushall/1, verbosity/1, add/2, - cas/3, getskey/1, connect/0, connect/2, delete/1 + cas/3, getskey/1, connect/0, connect/2, delete/1, disconnect/0 ]). %% gen_server callbacks @@ -59,8 +59,6 @@ code_change/3 ]). --record(state, {socket}). - %% @doc retrieve memcached stats stats() -> gen_server:call(?SERVER, {stats}). @@ -237,6 +235,11 @@ connect() -> connect(Host, Port) -> start_link(Host, Port). +%% @doc disconnect from memcached +disconnect() -> + gen_server:call(?SERVER, {stop}), + ok. + %% @private start_link(Host, Port) -> gen_server:start_link({local, ?SERVER}, ?MODULE, [Host, Port], []). @@ -245,7 +248,9 @@ start_link(Host, Port) -> init([Host, Port]) -> gen_tcp:connect(Host, Port, ?TCP_OPTS). -%% @private +handle_call({stop}, _From, Socket) -> + {stop, requested_disconnect, Socket}; + handle_call({stats}, _From, Socket) -> Reply = send_generic_cmd(Socket, iolist_to_binary([<<"stats">>])), {reply, Reply, Socket}; @@ -346,7 +351,7 @@ code_change(_OldVsn, State, _Extra) -> {ok, State}. %% @private %% @doc Closes the socket -terminate(_Reason, #state{socket = Socket}) -> +terminate(_Reason, Socket) -> gen_tcp:close(Socket), ok.