Merge remote-tracking branch 'iilyak/2561-make-config-API-consistent'

This closes #3

COUCHDB-2561
diff --git a/src/ioq.erl b/src/ioq.erl
index 6c01b9c..967a49b 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 @@
         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(_, _, _, _, _) ->
     {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}.