diff options
author | Linus Nordberg <linus@nordu.net> | 2017-02-23 15:27:32 +0100 |
---|---|---|
committer | Linus Nordberg <linus@nordu.net> | 2017-02-23 15:27:32 +0100 |
commit | 26869b8656b644d031e3592653e1ae3c9a30c3c4 (patch) | |
tree | fc968e020d5e0ababae5c95288898b542da332dd /merge/src/merge_util.erl | |
parent | 04ab165194db6d3ff86d1d1ff8194f8bc6cb3731 (diff) |
Simplify added error handling.
keysearch is as fast as member.
Diffstat (limited to 'merge/src/merge_util.erl')
-rw-r--r-- | merge/src/merge_util.erl | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/merge/src/merge_util.erl b/merge/src/merge_util.erl index 388c627..0e19e90 100644 --- a/merge/src/merge_util.erl +++ b/merge/src/merge_util.erl @@ -68,18 +68,16 @@ sendentries_chunk(_, {[], _}, _) -> ok; sendentries_chunk(NodeAddress, {Chunk, Rest}, Chunksize) -> lager:debug("sending entries chunk: N=~B", [length(Chunk)]), - Entries = [db:entry_for_leafhash(H) || H <- Chunk], - HashesAndEntries = lists:zip(Chunk, Entries), - case lists:member(noentry, Entries) of - true -> - Missing = lists:keysearch(noentry, 2, HashesAndEntries), - lager:error("Entries not in db: ~p", [Missing]), - {error, entrynotindb}; + HashesAndEntries = lists:zip(Chunk, [db:entry_for_leafhash(H) || H <- Chunk]), + case lists:keysearch(noentry, 2, HashesAndEntries) of false -> ok = sendentries_request(NodeAddress, HashesAndEntries), sendentries_chunk(NodeAddress, lists:split(min(Chunksize, length(Rest)), Rest), - Chunksize) + Chunksize); + Missing -> + lager:error("Entries not in db: ~p", [Missing]), + {error, entrynotindb} end. sendentries_request(NodeAddress, HashesAndEntries) -> |