diff options
-rw-r--r-- | src/file_handle_cache.erl | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/file_handle_cache.erl b/src/file_handle_cache.erl index b26bb988..eed62729 100644 --- a/src/file_handle_cache.erl +++ b/src/file_handle_cache.erl @@ -970,12 +970,13 @@ queue_fold(Fun, Init, Q) -> filter_pending(Fun, {Count, Queue}) -> {Delta, Queue1} = - queue_fold(fun (Item, {DeltaN, QueueN}) -> - case Fun(Item) of - true -> {DeltaN, queue:in(Item, QueueN)}; - false -> {DeltaN - requested(Item), QueueN} - end - end, {0, queue:new()}, Queue), + queue_fold( + fun (Item = #pending { requested = Requested }, {DeltaN, QueueN}) -> + case Fun(Item) of + true -> {DeltaN, queue:in(Item, QueueN)}; + false -> {DeltaN - Requested, QueueN} + end + end, {0, queue:new()}, Queue), {Count + Delta, Queue1}. pending_new() -> @@ -1021,9 +1022,6 @@ adjust_alarm(OldState, NewState) -> end, NewState. -requested({_Kind, _Pid, Requested, _From}) -> - Requested. - process_pending(State = #fhc_state { limit = infinity }) -> State; process_pending(State) -> |