0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-15 12:40:25 +00:00

Remove call to queue:len/1

queue:len/1 is O(len(Q))
queue:out/1 is O(1) amortized, O(len(Q)) worst case

Replace with a pattern match
This commit is contained in:
Paul Oliver 2012-01-31 19:28:34 +00:00
parent 0c3cf802b4
commit 697170b496

View file

@ -202,11 +202,10 @@ remove_pid(Pid, Pools, ReqsTable, Queue) ->
{Pool, NbConns} = lists:keyfind(Pool, 1, Pools),
Pools2 = [{Pool, NbConns - 1}|lists:keydelete(Pool, 1, Pools)],
ets:delete(ReqsTable, Pid),
case queue:len(Queue) of
0 ->
{Pools2, Queue};
_ ->
{{value, Client}, Queue2} = queue:out(Queue),
case queue:out(Queue) of
{{value, Client}, Queue2} ->
gen_server:reply(Client, ok),
{Pools2, Queue2}
{Pools2, Queue2};
_ ->
{Pools2, Queue}
end.