mirror of
https://gitlab.com/chrony/chrony.git
synced 2025-12-04 15:45:07 -05:00
samplefilt: drop last sample in SPF_DropSamples()
When SPF_DropSamples() is called, don't keep the last sample to be retrieved by SPF_GetLastSample(). It should be kept only after filtering.
This commit is contained in:
16
samplefilt.c
16
samplefilt.c
@@ -170,11 +170,21 @@ SPF_GetAvgSampleDispersion(SPF_Instance filter)
|
|||||||
|
|
||||||
/* ================================================== */
|
/* ================================================== */
|
||||||
|
|
||||||
void
|
static void
|
||||||
SPF_DropSamples(SPF_Instance filter)
|
drop_samples(SPF_Instance filter, int keep_last)
|
||||||
{
|
{
|
||||||
filter->index = -1;
|
filter->index = -1;
|
||||||
filter->used = 0;
|
filter->used = 0;
|
||||||
|
if (!keep_last)
|
||||||
|
filter->last = -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ================================================== */
|
||||||
|
|
||||||
|
void
|
||||||
|
SPF_DropSamples(SPF_Instance filter)
|
||||||
|
{
|
||||||
|
drop_samples(filter, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ================================================== */
|
/* ================================================== */
|
||||||
@@ -405,7 +415,7 @@ SPF_GetFilteredSample(SPF_Instance filter, NTP_Sample *sample)
|
|||||||
if (!combine_selected_samples(filter, n, sample))
|
if (!combine_selected_samples(filter, n, sample))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
SPF_DropSamples(filter);
|
drop_samples(filter, 1);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -103,6 +103,7 @@ test_unit(void)
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
SPF_DropSamples(filter);
|
SPF_DropSamples(filter);
|
||||||
|
TEST_CHECK(filter->last < 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_CHECK(SPF_GetNumberOfSamples(filter) == 0);
|
TEST_CHECK(SPF_GetNumberOfSamples(filter) == 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user