mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2025-01-01 14:41:53 +00:00
Lib: Expand timer recurrence to 64b
The period of recurent timers was stored in 32b field, despite it was btime-compatible value in us. Therefore, it was limited to ~72 min, which mas okay for most purposes, except configurable MRT dump periods. Thanks to Felix Friedlander for the bugreport.
This commit is contained in:
parent
5214d7e59f
commit
acbdc29d57
@ -110,9 +110,9 @@ tm_dump(resource *r)
|
|||||||
if (t->randomize)
|
if (t->randomize)
|
||||||
debug("rand %d, ", t->randomize);
|
debug("rand %d, ", t->randomize);
|
||||||
if (t->recurrent)
|
if (t->recurrent)
|
||||||
debug("recur %d, ", t->recurrent);
|
debug("recur %ld, ", t->recurrent);
|
||||||
if (t->expires)
|
if (t->expires)
|
||||||
debug("expires in %d ms)\n", (t->expires - current_time()) TO_MS);
|
debug("expires in %ld ms)\n", (t->expires - current_time()) TO_MS);
|
||||||
else
|
else
|
||||||
debug("inactive)\n");
|
debug("inactive)\n");
|
||||||
}
|
}
|
||||||
|
@ -22,8 +22,8 @@ typedef struct timer
|
|||||||
void *data;
|
void *data;
|
||||||
|
|
||||||
btime expires; /* 0=inactive */
|
btime expires; /* 0=inactive */
|
||||||
|
btime recurrent; /* Timer recurrence */
|
||||||
uint randomize; /* Amount of randomization */
|
uint randomize; /* Amount of randomization */
|
||||||
uint recurrent; /* Timer recurrence */
|
|
||||||
|
|
||||||
int index;
|
int index;
|
||||||
} timer;
|
} timer;
|
||||||
@ -72,7 +72,7 @@ tm_remains(timer *t)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static inline timer *
|
static inline timer *
|
||||||
tm_new_init(pool *p, void (*hook)(struct timer *), void *data, uint rec, uint rand)
|
tm_new_init(pool *p, void (*hook)(struct timer *), void *data, btime rec, uint rand)
|
||||||
{
|
{
|
||||||
timer *t = tm_new(p);
|
timer *t = tm_new(p);
|
||||||
t->hook = hook;
|
t->hook = hook;
|
||||||
|
Loading…
Reference in New Issue
Block a user