summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Shorin <kxepal@apache.org>2015-02-04 18:43:21 +0300
committerAlexander Shorin <kxepal@apache.org>2015-02-04 18:43:21 +0300
commitc7c75ebeaf41599e3a3e211097d864f0e7785829 (patch)
treeeb709dcb55749662ac18a15b488f152cba919dc2
parent217503577e23f26dfd2f9cbaa52e9f78aaa3b308 (diff)
parent0ffa7cd9fd1e89ae667ed234d21e04696e3033ae (diff)
downloadcouchdb-c7c75ebeaf41599e3a3e211097d864f0e7785829.tar.gz
Merge remote-tracking branch 'iilyak/2561-make-config-API-consistent'
This closes #3 COUCHDB-2561
-rw-r--r--src/ioq.erl16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/ioq.erl b/src/ioq.erl
index 6c01b9c60..967a49b86 100644
--- a/src/ioq.erl
+++ b/src/ioq.erl
@@ -18,7 +18,7 @@
-export([init/1, handle_call/3, handle_cast/2, handle_info/2, code_change/3, terminate/2]).
% config_listener api
--export([handle_config_change/5]).
+-export([handle_config_change/5, handle_config_terminate/3]).
-record(state, {
concurrency,
@@ -83,12 +83,6 @@ handle_info({'DOWN', Ref, _, _, Reason}, State) ->
false ->
{noreply, State, 0}
end;
-handle_info({gen_event_EXIT, {config_listener, ?MODULE}, _Reason}, State) ->
- erlang:send_after(5000, self(), restart_config_listener),
- {noreply, State};
-handle_info(restart_config_listener, State) ->
- ok = config:listen_for_changes(?MODULE, nil),
- {noreply, State};
handle_info(timeout, State) ->
{noreply, maybe_submit_request(State)}.
@@ -97,6 +91,14 @@ handle_config_change("ioq", _, _, _, _) ->
handle_config_change(_, _, _, _, _) ->
{ok, nil}.
+handle_config_terminate(_, stop, _) -> ok;
+handle_config_terminate(_, _, _) ->
+ spawn(fun() ->
+ timer:sleep(5000),
+ config:listen_for_changes(?MODULE, nil)
+ end),
+ ok.
+
code_change(_Vsn, State, _Extra) ->
{ok, State}.