From 0a0c244b9939059b86d304dd127763fed7d10af4 Mon Sep 17 00:00:00 2001 From: Dimitri Staessens Date: Wed, 22 Dec 2021 12:14:21 +0100 Subject: lib: Ease lock in timerwheel It was taking a write lock when a read lock was sufficient. Signed-off-by: Dimitri Staessens Signed-off-by: Sander Vrijders --- src/lib/timerwheel.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/lib/timerwheel.c b/src/lib/timerwheel.c index 3c1a44b4..487dcd0e 100644 --- a/src/lib/timerwheel.c +++ b/src/lib/timerwheel.c @@ -189,7 +189,7 @@ static void timerwheel_move(void) || f->flow_id != r->flow_id) goto cleanup; - pthread_rwlock_wrlock(&r->frcti->lock); + pthread_rwlock_rdlock(&r->frcti->lock); snd_lwe = snd_cr->lwe; rcv_lwe = rcv_cr->lwe; @@ -198,7 +198,7 @@ static void timerwheel_move(void) pthread_rwlock_unlock(&r->frcti->lock); /* Has been ack'd, remove. */ - if ((int) (r->seqno - snd_lwe) < 0) + if (before(r->seqno, snd_lwe)) goto cleanup; /* Check for r-timer expiry. */ -- cgit v1.2.3