aboutsummaryrefslogtreecommitdiffstats
path: root/src/rate_ctr.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2021-11-14 20:45:07 +0100
committerHarald Welte <laforge@osmocom.org>2021-11-14 20:46:11 +0100
commit5eb67c2d666445bb8b01129634de3e955236adf5 (patch)
tree27c066cb8e4fc9c3626b67fe0e67687d3a5cca88 /src/rate_ctr.c
parent1f666e875d20c207c792d49eafda3581e86a2826 (diff)
rate_ctr: Make it safe to call rate_ctr_init() several times
There might be library code that has rate counters, and if the main program calls rate_ctr_init() a second time, we can skip the second initialization. Change-Id: I6f5342a77518599eb5ac9a0f0605917a78fcc387
Diffstat (limited to 'src/rate_ctr.c')
-rw-r--r--src/rate_ctr.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/rate_ctr.c b/src/rate_ctr.c
index 4d99699e..283858d3 100644
--- a/src/rate_ctr.c
+++ b/src/rate_ctr.c
@@ -354,6 +354,10 @@ static void rate_ctr_timer_cb(void *data)
* \returns 0 on success; negative on error */
int rate_ctr_init(void *tall_ctx)
{
+ /* ignore repeated initialization */
+ if (osmo_timer_pending(&rate_ctr_timer))
+ return 0;
+
tall_rate_ctr_ctx = tall_ctx;
osmo_timer_setup(&rate_ctr_timer, rate_ctr_timer_cb, NULL);
osmo_timer_schedule(&rate_ctr_timer, 1, 0);