anchor.diff:              Timer = erlang:start_timer(Timeout, self(), {checkout_timeout, From}),
               Queue = State#tcp_state.froms,
               Len = State#tcp_state.froms_len,
  -            {noreply, State#tcp_state{froms = queue:in({From, Timer}, froms_len = Len + 1, Queue)}};
  +            Limit = State#tcp_state.froms_limit,
  +            case Len of
  +                Limit ->
  +                    ?inc(?CONN_TCP_ERRORS),
  +                    ErrorMsg = hive_error_utils:format("Hive TCP Connector ~s's request queue is full.",
  +                                                       [State#tcp_state.pool_name]),
  +                    lager:error(ErrorMsg),
  +                    {reply, {error, {tcp_error, ErrorMsg}}, State};
  +
  +                _Otherwise ->
  +                    {noreply, State#tcp_state{froms = queue:in({From, Timer}, Queue), froms_len = Len + 1}}
  +            end;
   
           {ok, Worker, NewState} ->
               {reply, {ok, Worker}, NewState};
  
positive.code:         retry_later ->
              Queue = State#tcp_state.froms,
              Len = State#tcp_state.froms_len,
              {noreply, State#tcp_state{froms = queue:in({From, Transaction}, froms_len = Len + 1, Queue)}};
  
          {ok, Worker, NewState} ->
              Reply = Transaction(Worker),
  
negative.code:           pool_name,
            froms,
            froms_len,
            froms_limit,
            workers,
            workers_queue
           }).
  