anchor.diff:  -define(TERMINATE_SAVE_TIMEOUT, 10000).
   
   %% log codes
  --define(RELOAD_FAILED, 1).
  --define(RESAVE_FAILED, 2).
  --define(CONFIG_CONFLICT, 3).
  --define(GOT_TERMINATE_SAVE_TIMEOUT, 4).
  -
   -export([eval/1,
            uuid/0, uuid/1,
            start_link/2, start_link/1,
  
positive.code: 
  handle_call(reload, _From, State) ->
      case init(State#config.init) of
          {ok, State2}  -> {reply, ok, State2};
          {stop, Error} -> ?user_log(?RELOAD_FAILED, "reload failed: ~p",
                                     [Error]),
                           {reply, {error, Error}, State}
      end;
  
  handle_call(resave, _From, State) ->
  
negative.code: terminate(_Reason, State) ->
      case wait_saver(State, ?TERMINATE_SAVE_TIMEOUT) of
          timeout ->
              ale:warn(?USER_LOGGER,
                       "Termination wait for ns_config saver process timed out.");
          _ -> ok
      end.
  
  