anchor.diff:      limit,                  % max # of workers allowed
       free = [],              % free workers (connections)
       busy = [],              % busy workers (connections)
  -    waiting = queue:new()   % blocked clients waiting for a worker
  +    waiting = queue:new(),   % blocked clients waiting for a worker
  +    callers = ets:new(callers,[set]) % clients who've been given a worker
   }).
   
   
   start_link(Url, Options) ->
       gen_server:start_link(?MODULE, {Url, Options}, []).
  -
   
   stop(Pool) ->
       ok = gen_server:call(Pool, stop, infinity).
  
positive.code:     {ok, State}.
  
  
  handle_call(get_worker, From, #state{waiting = Waiting} = State) ->
      #state{url = Url, limit = Limit, busy = Busy, free = Free} = State,
      case length(Busy) >= Limit of
      true ->
  
negative.code:         [Worker | Free2] ->
             ok
          end,
          monitor_use(FromPid, Worker, Callers),
          NewState = State#state{free = Free2, busy = [Worker | Busy]},
          {reply, {ok, Worker}, NewState}
      end;
  