From: Dave Barach Date: Tue, 20 Feb 2018 13:34:48 +0000 (-0500) Subject: Reset expired timer vector length after callback X-Git-Tag: v18.04-rc1~289 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=ad099335c1c2de17fb0b3b29b008ef8623ee93c0;p=vpp.git Reset expired timer vector length after callback Otherwise, in a "catch-up / multiple tick" case, the code will repeatedly hand previously-processed expired timer handles to the user callback. Change-Id: Idef4f242279ea41cb557bb6cff5984de02a6503d Signed-off-by: Dave Barach --- diff --git a/src/vppinfra/tw_timer_template.c b/src/vppinfra/tw_timer_template.c index abad3718b6f..a6d26d7991d 100644 --- a/src/vppinfra/tw_timer_template.c +++ b/src/vppinfra/tw_timer_template.c @@ -738,7 +738,10 @@ static inline { /* The callback is optional. We return the u32 * handle vector */ if (tw->expired_timer_callback) - tw->expired_timer_callback (callback_vector); + { + tw->expired_timer_callback (callback_vector); + vec_reset_length (callback_vector); + } tw->expired_timer_handles = callback_vector; }