anchor.diff:  %% @spec terminate(Reason, State) -> void()
   %% @end
   %%--------------------------------------------------------------------
  +terminate(_Reason, #state{timer=undefined}) ->
  +    lager:info("terminating finder server at ~w", [self()]),
  +    ok;
  +
   terminate(_Reason, #state{timer=Timer}) ->
       lager:info("terminating finder server at ~w", [self()]),
       erlang:cancel_timer(Timer, [{async, true}]),
  
positive.code: 
  -define(FINDER_UPDATE_INTERVAL, 60000).
  
  -record(state, {metrics=[], data_dir, timer, count}).
  
  -record(metric_file, {
            name :: nonempty_string(),
  
negative.code: %% @end
  %%--------------------------------------------------------------------
  handle_info(update_metrics, State) ->
      State0 = spawn_update_metrics(State),
      {noreply, State0};
  
  handle_info({finder_result, {Ms, Count}}, State) ->
      Timer = erlang:send_after(?FINDER_UPDATE_INTERVAL, self(), update_metrics),
      {noreply, State#state{metrics=Ms, count=Count, timer=Timer, status=none}};
  
  handle_info(Info, State) ->
      lager:warning("finder_server: received unexpected message: ~p", [Info]),
      {noreply, State}.
  
  %%--------------------------------------------------------------------
  