anchor.diff:                   waiting_pool = NewWaitingPool},
   
       ?xdcr_debug("no token available, put (pid:~p, signal: ~p, targetnode: ~p) "
  -                "waiting pool", [Pid, Signal, TargetNode]),
  +                "into waiting pool (active reps: ~p, waiting reps: ~p)",
  +                [Pid, Signal, TargetNode, dict:size(ActivePool), dict:size(NewWaitingPool)]),
   
       {reply, ok, NewState};
   
  
positive.code: 
      {Signal, TargetNode} = dict:fetch(MinimumPid, WaitingPool),
      {MinimumPid, Signal, TargetNode}.
  
negative.code:                   active_pool = NewActivePool}};
  
  handle_call(done, {Pid, _Tag},
              #concurrency_throttle_state{monitor_dict = MonDict} = State) ->
  
      true = erlang:demonitor(dict:fetch(Pid, MonDict), [flush]),
      NewState = clean_concurr_throttle_state(Pid, normal, State),
      State2 = signal_waiting(NewState),
      {reply, ok, State2}.
  
  handle_cast(Msg, State) ->
      {stop, {error, {unexpected_cast, Msg}}, State}.
  
  handle_info({'DOWN', _MonRef, Type, Pid, Info},
              #concurrency_throttle_state{monitor_dict = _MonDict} = State) ->
      NewState = clean_concurr_throttle_state(Pid, {Type, Info}, State),
      State2 = signal_waiting(NewState),
      {noreply, State2}.
  
  
  