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, #{}),
PopOpts = #{
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),
Data2 = Data1#{queue := Q1},
@ -623,72 +623,22 @@ flush(Data0) ->
end
end.
stop_before_mixed_stop_after_render(
?QUERY(
_,
_,
_,
_,
#{stop_action_after_render := true} = _TraceCtx
),
initial_state
) ->
stop_batching(Query, initial_state) ->
get_stop_flag(Query);
stop_batching(Query, PrevStopFlag) ->
case get_stop_flag(Query) =:= PrevStopFlag of
true ->
PrevStopFlag;
false ->
%% We stop beceause we don't want a batch with mixed values for the
%% stop_action_after_render option
true
end.
get_stop_flag(?QUERY(_, _, _, _, #{stop_action_after_render := true})) ->
stop_action_after_render;
stop_before_mixed_stop_after_render(
?QUERY(
_,
_,
_,
_,
_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.
get_stop_flag(_) ->
no_stop_action_after_render.
-spec do_flush(data(), #{
is_batch := boolean(),