summaryrefslogtreecommitdiff
path: root/src/rabbit_memory_monitor.erl
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@rabbitmq.com>2011-10-20 00:17:44 +0100
committerMatthias Radestock <matthias@rabbitmq.com>2011-10-20 00:17:44 +0100
commit55bc75b7a559a28f9e6ca5fdd5737cc609fcc86b (patch)
tree7e3701c1974ccd4bbdf283318016ff671c11a451 /src/rabbit_memory_monitor.erl
parent8dd2e7c274ef231f9625cb7066fb8fb546f7552a (diff)
downloadrabbitmq-server-55bc75b7a559a28f9e6ca5fdd5737cc609fcc86b.tar.gz
replace timer:apply_interval with timer:send_intervalbug24508
The latter doesn't churn processes and doesn't require exporting of functions we otherwise wouldn't.
Diffstat (limited to 'src/rabbit_memory_monitor.erl')
-rw-r--r--src/rabbit_memory_monitor.erl15
1 files changed, 5 insertions, 10 deletions
diff --git a/src/rabbit_memory_monitor.erl b/src/rabbit_memory_monitor.erl
index 3bd8eeef..3deb9580 100644
--- a/src/rabbit_memory_monitor.erl
+++ b/src/rabbit_memory_monitor.erl
@@ -24,7 +24,7 @@
-behaviour(gen_server2).
--export([start_link/0, update/0, register/2, deregister/1,
+-export([start_link/0, register/2, deregister/1,
report_ram_duration/2, stop/0]).
-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
@@ -69,7 +69,6 @@
-ifdef(use_specs).
-spec(start_link/0 :: () -> rabbit_types:ok_pid_or_error()).
--spec(update/0 :: () -> 'ok').
-spec(register/2 :: (pid(), {atom(),atom(),[any()]}) -> 'ok').
-spec(deregister/1 :: (pid()) -> 'ok').
-spec(report_ram_duration/2 ::
@@ -85,9 +84,6 @@
start_link() ->
gen_server2:start_link({local, ?SERVER}, ?MODULE, [], []).
-update() ->
- gen_server2:cast(?SERVER, update).
-
register(Pid, MFA = {_M, _F, _A}) ->
gen_server2:call(?SERVER, {register, Pid, MFA}, infinity).
@@ -106,8 +102,7 @@ stop() ->
%%----------------------------------------------------------------------------
init([]) ->
- {ok, TRef} = timer:apply_interval(?DEFAULT_UPDATE_INTERVAL,
- ?SERVER, update, []),
+ {ok, TRef} = timer:send_interval(?DEFAULT_UPDATE_INTERVAL, update),
Ets = ets:new(?TABLE_NAME, [set, private, {keypos, #process.pid}]),
@@ -153,9 +148,6 @@ handle_call({register, Pid, MFA}, _From,
handle_call(_Request, _From, State) ->
{noreply, State}.
-handle_cast(update, State) ->
- {noreply, internal_update(State)};
-
handle_cast({deregister, Pid}, State) ->
{noreply, internal_deregister(Pid, true, State)};
@@ -165,6 +157,9 @@ handle_cast(stop, State) ->
handle_cast(_Request, State) ->
{noreply, State}.
+handle_info(update, State) ->
+ {noreply, internal_update(State)};
+
handle_info({'DOWN', _MRef, process, Pid, _Reason}, State) ->
{noreply, internal_deregister(Pid, false, State)};