Merge remote branch 'cloudant:make-accumulate_more-pure'
This closes #61
Signed-off-by: Eric Avdey <eiri@eiri.ca>
diff --git a/src/couch_mrview_updater.erl b/src/couch_mrview_updater.erl
index 645f02b..0ceaa40 100644
--- a/src/couch_mrview_updater.erl
+++ b/src/couch_mrview_updater.erl
@@ -244,18 +244,18 @@
{stop, {Seq, ViewKVs, DocIdKVs, Seqs, Log}};
{ok, Info} ->
{_, _, NewIds, _, _} = Acc = merge_results(Info, Seq, ViewKVs, DocIdKVs, Seqs, Log),
- case accumulate_more(length(NewIds)) of
+ case accumulate_more(length(NewIds), Acc) of
true -> accumulate_writes(State, W, Acc);
false -> {ok, Acc}
end
end.
-accumulate_more(NumDocIds) ->
+accumulate_more(NumDocIds, Acc) ->
% check if we have enough items now
MinItems = config:get("view_updater", "min_writer_items", "100"),
MinSize = config:get("view_updater", "min_writer_size", "16777216"),
- {memory, CurrMem} = process_info(self(), memory),
+ CurrMem = ?term_size(Acc),
NumDocIds < list_to_integer(MinItems)
andalso CurrMem < list_to_integer(MinSize).