anchor.diff:      ets:foldl(fun(#proc_int{pid=P}, _) -> couch_util:shutdown_sync(P) end, 0, Tab),
       ok.
   
  -code_change(_OldVsn, #state{tab = Tab} = State, _Extra) ->
  -    NewTab = ets:new(procs, [ordered_set, {keypos, #proc_int.pid}]),
  -    true = ets:insert(NewTab, ets:tab2list(Tab)),
  -    true = ets:delete(Tab),
  -    {ok, State#state{tab = NewTab}}.
  +code_change(_OldVsn, {state, Tab}, _Extra) ->
  +    State = #state{tab = Tab, threshold_ts = {0,0,0}},
  +    ProcInts = lists:map(
  +        fun(#proc{} = P) ->
  +            setelement(1, erlang:append_element(P, os:timestamp()), proc_int)
  +        end,
  +        ets:tab2list(Tab)
  +    ),
  +    ets:delete_all_objects(Tab),
  +    ets:insert(Tab, ProcInts),
  +    {ok, State}.
   
   handle_config_change("query_server_config", _, _, _, _) ->
       gen_server:cast(?MODULE, reload_config),
  
positive.code:     ddoc_keys = [],
      prompt_fun,
      set_timeout_fun,
      stop_fun
  }).
  
  start_link() ->
  
negative.code: 
  get_proc_count() ->
      gen_server:call(?MODULE, get_proc_count).
  
  get_stale_proc_count() ->
      gen_server:call(?MODULE, get_stale_proc_count).
  
  reload() ->
      gen_server:call(?MODULE, bump_threshold_ts).
  
  init([]) ->
      process_flag(trap_exit, true),
  