anchor.diff:      ddoc_key
   }).
   
  +-record(proc_int, {
  +    pid,
  +    lang,
  +    client = nil,
  +    ddoc_keys = [],
  +    prompt_fun,
  +    set_timeout_fun,
  +    stop_fun
  +}).
  +
   start_link() ->
       gen_server:start_link({local, ?MODULE}, ?MODULE, [], []).
   
  
positive.code:     process_flag(trap_exit, true),
      ok = config:listen_for_changes(?MODULE, nil),
      {ok, #state{
          tab = ets:new(procs, [ordered_set, {keypos, #proc.pid}]),
          config = get_proc_config(),
          proc_counts = dict:new(),
          waiting = ets:new(couch_proc_manage_waiting,
  
negative.code:                 maybe_spawn_proc(State, Client)
          end
      end.
  
  -spec export_proc(#proc_int{}) -> #proc{}.
  export_proc(#proc_int{} = ProcInt) ->
      [_ | Data] = lists:sublist(record_info(size, proc), tuple_to_list(ProcInt)),
      list_to_tuple([proc | Data]).
  
  maybe_spawn_proc(State, Client) ->
      #state{proc_counts=Counts, waiting=Waiting} = State,
  