Passing ETS reference not tree

ETS reference gets converted to tree by Penciller
This commit is contained in:
martinsumner 2017-03-13 11:54:46 +00:00
parent 121f410b8f
commit 62c3ba8b6f
2 changed files with 12 additions and 3 deletions

View file

@ -1181,7 +1181,7 @@ maybepush_ledgercache(MaxCacheSize, Cache, Penciller) ->
TimeToPush = maybe_withjitter(CacheSize, MaxCacheSize),
if
TimeToPush ->
CacheToLoad = {leveled_tree:from_orderedset(Tab, ?CACHE_TYPE),
CacheToLoad = {Tab,
Cache#ledger_cache.index,
Cache#ledger_cache.min_sqn,
Cache#ledger_cache.max_sqn},

View file

@ -341,7 +341,7 @@ init([PCLopts]) ->
end.
handle_call({push_mem, {PushedTree, PushedIdx, MinSQN, MaxSQN}},
handle_call({push_mem, {LedgerTable, PushedIdx, MinSQN, MaxSQN}},
From,
State=#state{is_snapshot=Snap}) when Snap == false ->
% The push_mem process is as follows:
@ -370,7 +370,16 @@ handle_call({push_mem, {PushedTree, PushedIdx, MinSQN, MaxSQN}},
{reply, returned, State};
false ->
leveled_log:log("P0018", [ok, false, false]),
gen_server:reply(From, ok),
PushedTree =
case is_tuple(LedgerTable) of
true ->
LedgerTable;
false ->
leveled_tree:from_orderedset(LedgerTable,
?CACHE_TYPE)
end,
% Reply ust happen after the table has been converted
gen_server:reply(From, ok),
{noreply,
update_levelzero(State#state.levelzero_size,
{PushedTree, PushedIdx, MinSQN, MaxSQN},