summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/file_handle_cache.erl10
-rw-r--r--src/tcp_acceptor.erl2
2 files changed, 6 insertions, 6 deletions
diff --git a/src/file_handle_cache.erl b/src/file_handle_cache.erl
index 723f05aec5..9fb18c3993 100644
--- a/src/file_handle_cache.erl
+++ b/src/file_handle_cache.erl
@@ -734,11 +734,11 @@ process_obtains(State = #fhc_state { limit = Limit, count = Count })
State;
process_obtains(State = #fhc_state { limit = Limit, count = Count,
obtains = Obtains }) ->
- Take = lists:min([length(Obtains), Limit - Count]),
- {Obtainable, ObtainsNewRev} = lists:split(Take, lists:reverse(Obtains)),
- [gen_server:reply(From, ok) || From <- Obtainable],
- State #fhc_state { count = Count + Take,
- obtains = lists:reverse(ObtainsNewRev) }.
+ ObtainsLen = length(Obtains),
+ Take = ObtainsLen - lists:min([ObtainsLen, Limit - Count]),
+ {ObtainsNew, ObtainableRev} = lists:split(Take, Obtains),
+ [gen_server:reply(From, ok) || From <- lists:reverse(ObtainableRev)],
+ State #fhc_state { count = Count + Take, obtains = ObtainsNew }.
maybe_reduce(State = #fhc_state { limit = Limit, count = Count,
elders = Elders })
diff --git a/src/tcp_acceptor.erl b/src/tcp_acceptor.erl
index 6de6ac3e2e..f38f8191b0 100644
--- a/src/tcp_acceptor.erl
+++ b/src/tcp_acceptor.erl
@@ -104,5 +104,5 @@ accept(State = #state{sock=LSock}) ->
ok = file_handle_cache:obtain(),
case prim_inet:async_accept(LSock, -1) of
{ok, Ref} -> {noreply, State#state{ref=Ref}};
- Error -> {stop, {cannot_accept, Error}}
+ Error -> {stop, {cannot_accept, Error}, State}
end.