refactor: made code more readable thanks to suggestion from @zmstone

This commit is contained in:
Kjell Winblad 2024-04-18 06:51:30 +02:00
parent 95891db29a
commit b16b9d8fcc
1 changed files with 16 additions and 66 deletions

View File

@ -585,7 +585,7 @@ flush(Data0) ->
?tp(buffer_worker_flush_before_pop, #{}), ?tp(buffer_worker_flush_before_pop, #{}),
PopOpts = #{ PopOpts = #{
count_limit => BatchSize, count_limit => BatchSize,
stop_before => {fun stop_before_mixed_stop_after_render/2, initial_state} stop_before => {fun stop_batching/2, initial_state}
}, },
{Q1, QAckRef, Batch} = replayq:pop(Q0, PopOpts), {Q1, QAckRef, Batch} = replayq:pop(Q0, PopOpts),
Data2 = Data1#{queue := Q1}, Data2 = Data1#{queue := Q1},
@ -623,72 +623,22 @@ flush(Data0) ->
end end
end. end.
stop_before_mixed_stop_after_render( stop_batching(Query, initial_state) ->
?QUERY( get_stop_flag(Query);
_, stop_batching(Query, PrevStopFlag) ->
_, case get_stop_flag(Query) =:= PrevStopFlag of
_, true ->
_, PrevStopFlag;
#{stop_action_after_render := true} = _TraceCtx false ->
), %% We stop beceause we don't want a batch with mixed values for the
initial_state %% stop_action_after_render option
) -> true
end.
get_stop_flag(?QUERY(_, _, _, _, #{stop_action_after_render := true})) ->
stop_action_after_render; stop_action_after_render;
stop_before_mixed_stop_after_render( get_stop_flag(_) ->
?QUERY( no_stop_action_after_render.
_,
_,
_,
_,
_TraceCtx
),
initial_state
) ->
no_stop_action_after_render;
stop_before_mixed_stop_after_render(
?QUERY(
_,
_,
_,
_,
#{stop_action_after_render := true} = _TraceCtx
),
no_stop_action_after_render
) ->
true;
stop_before_mixed_stop_after_render(
?QUERY(
_,
_,
_,
_,
#{stop_action_after_render := true} = _TraceCtx
),
stop_action_after_render
) ->
stop_action_after_render;
stop_before_mixed_stop_after_render(
?QUERY(
_,
_,
_,
_,
_TraceCtx
),
stop_action_after_render
) ->
true;
stop_before_mixed_stop_after_render(
?QUERY(
_,
_,
_,
_,
_TraceCtx
),
State
) ->
State.
-spec do_flush(data(), #{ -spec do_flush(data(), #{
is_batch := boolean(), is_batch := boolean(),