diff options
author | Matthew Sackman <matthew@rabbitmq.com> | 2010-08-19 16:54:12 +0100 |
---|---|---|
committer | Matthew Sackman <matthew@rabbitmq.com> | 2010-08-19 16:54:12 +0100 |
commit | b055655151c238d8e8df15090802368ab610b08a (patch) | |
tree | 678a2dae1a53f4633bcc0b66f674e27f814a3690 | |
parent | 31d70f4398727c7ca69fc60b546f9a1ea7d84c73 (diff) | |
download | rabbitmq-server-b055655151c238d8e8df15090802368ab610b08a.tar.gz |
Some essential assertions
-rw-r--r-- | src/file_handle_cache.erl | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/file_handle_cache.erl b/src/file_handle_cache.erl index 42f6115a..54d1dfa9 100644 --- a/src/file_handle_cache.erl +++ b/src/file_handle_cache.erl @@ -751,7 +751,8 @@ handle_call({open, Pid, EldestUnusedSince, CanClose}, From, State = #fhc_state { open_count = Count, open_pending = Pending, elders = Elders, - blocked = Blocked }) -> + blocked = Blocked }) + when EldestUnusedSince =/= undefined -> Elders1 = dict:store(Pid, EldestUnusedSince, Elders), Item = {open, Pid, From}, State1 = ensure_mref(Pid, State #fhc_state { elders = Elders1 }), @@ -797,7 +798,8 @@ handle_cast({register_callback, Pid, MFA}, callbacks = dict:store(Pid, MFA, Callbacks) })}; handle_cast({update, Pid, EldestUnusedSince}, State = - #fhc_state { elders = Elders }) -> + #fhc_state { elders = Elders }) + when EldestUnusedSince =/= undefined -> Elders1 = dict:store(Pid, EldestUnusedSince, Elders), %% don't call maybe_reduce from here otherwise we can create a %% storm of messages @@ -938,9 +940,7 @@ reduce(State = #fhc_state { open_pending = OpenPending, timer_ref = TRef }) -> Now = now(), {Pids, Sum, ClientCount} = - dict:fold(fun (_Pid, undefined, Accs) -> - Accs; - (Pid, Eldest, {PidsAcc, SumAcc, CountAcc} = Accs) -> + dict:fold(fun (Pid, Eldest, {PidsAcc, SumAcc, CountAcc} = Accs) -> case sets:is_element(Pid, Blocked) of true -> Accs; false -> {[Pid|PidsAcc], |