anchor.diff:      case NewTotalTokens > OldTotalTokens of
           true ->
               ExtraTokens = NewTotalTokens - OldTotalTokens,
  +            ?log_debug("Increased total count of tokens (~p -> ~p)", [OldTotalTokens, NewTotalTokens]),
               WaitersCount = ets:info(WaitersTid, size),
  -            [wakeup_one_waiter(WaitersTid, MonitorsTid)
  -             || _ <- lists:seq(1, erlang:min(ExtraTokens, WaitersCount))],
  +            [begin
  +                 P = wakeup_one_waiter(WaitersTid, MonitorsTid),
  +                 ?log_debug("Woken up waiter: ~p", [P])
  +             end || _ <- lists:seq(1, erlang:min(ExtraTokens, WaitersCount))],
               ets:update_counter(MonitorsTid, avail, ExtraTokens);
           _ ->
               TokensToRemove = OldTotalTokens - NewTotalTokens,
  +            ?log_debug("Decreased total count of tokens (~p -> ~p)", [OldTotalTokens, NewTotalTokens]),
               [{_, NowAvail}] = ets:lookup(MonitorsTid, avail),
  +            ?log_debug("Now avail: ~p", [NowAvail]),
               ToReturnTokens =
                   if
                       NowAvail >= TokensToRemove ->
  +                        ?log_debug("NowAvail >= TokensToRemove"),
                           %% we have more tokens available than we need
                           %% to remove. So just decrease avail count
                           ets:update_counter(MonitorsTid, avail, -TokensToRemove),
                           0;
                       NowAvail > 0 ->
  +                        ?log_debug("NowAvail > 0"),
                           %% we don't have enough tokens available to
                           %% cover jump down. But there are some tokens
                           %% available. So we decrease avail count to
  
positive.code:                       ok;
                    (Rec, [Pid | RestPids], TokensLeft) ->
                        Pid ! return_token_please,
                        %% for processes that we're asking to return
                        %% token back we want their token to be
                        %% "lost". So we mark them as if they're not
  
negative.code:                         ets:update_counter(MonitorsTid, avail, -NowAvail),
                          TokensToRemove - NowAvail;
                      NowAvail =< 0 ->
                          ?log_debug("NowAvail =< 0"),
                          %% we have no tokens available at all. So all
                          %% tokens that we need to remove must be
                          %% handled via asking existing workers to
  