-
-
Notifications
You must be signed in to change notification settings - Fork 375
Closed
Labels
acceptedIssue has been accepted and inserted in a future milestoneIssue has been accepted and inserted in a future milestone
Milestone
Description
Do not include unit WinAPI.Windows in MVCFramework.ObjectPool, ZeroMemory function can use FillChar instead
procedure TCleanupThread<T>.Execute;
var
lTargetSize: Integer;
lAvgSize: TPoolSizeSamples;
lArrIndex: Integer;
lSampleTick: Integer;
begin
lArrIndex := 0;
lSampleTick := 0;
while not Terminated do
begin
Inc(lSampleTick);
lArrIndex := lSampleTick mod AVG_SAMPLES_COUNT;
lAvgSize[lArrIndex] := fObjectPool.Size;
if (lAvgSize[lArrIndex] > 0) and (GetAveragePoolSize(lAvgSize) >= fObjectPool.fShrinkTriggerSize) then
begin
fObjectPool.Lock;
try
fObjectPool.ShrinkPoolTo(fObjectPool.fShrinkTargetSize);
FillChar(lAvgSize, SizeOf(lAvgSize),0);
// ZeroMemory(@lAvgSize, SizeOf(lAvgSize));
finally
fObjectPool.UnLock;
end;
end
else
begin
Sleep(GObjectPoolSamplingIntervalMS);
if lSampleTick = MaxInt then
begin
lSampleTick := 0;
end;
end;
end;
end;
Metadata
Metadata
Assignees
Labels
acceptedIssue has been accepted and inserted in a future milestoneIssue has been accepted and inserted in a future milestone