cleanup_defrag need not inspect any readers when all readers are in sync

Signed-off-by: Erik Boasson <eb@ilities.com>
This commit is contained in:
Erik Boasson 2019-01-03 17:36:28 +01:00
parent 4cc7fac8bc
commit 95f070d097

View file

@ -2115,6 +2115,8 @@ static void deliver_user_data_synchronously (struct nn_rsample_chain *sc)
static void clean_defrag (struct proxy_writer *pwr)
{
seqno_t seq = nn_reorder_next_seq (pwr->reorder);
if (pwr->n_readers_out_of_sync > 0)
{
struct pwr_rd_match *wn;
for (wn = ut_avlFindMin (&pwr_readers_treedef, &pwr->readers); wn != NULL; wn = ut_avlFindSucc (&pwr_readers_treedef, &pwr->readers, wn))
{
@ -2125,6 +2127,7 @@ static void clean_defrag (struct proxy_writer *pwr)
seq = seq1;
}
}
}
nn_defrag_notegap (pwr->defrag, 1, seq);
}