timer: add function timer_delay()
This commit is contained in:
parent
ec48b5ea3a
commit
ad430c6617
13
src/timer.c
13
src/timer.c
@ -71,6 +71,19 @@ void timer_add(Timer *timer, int size)
|
|||||||
timer->time += ((uint64_t)size * 1000000) / timer->rate;
|
timer->time += ((uint64_t)size * 1000000) / timer->rate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsigned
|
||||||
|
timer_delay(const Timer *timer)
|
||||||
|
{
|
||||||
|
int64_t delay = timer->time - now();
|
||||||
|
if (delay < 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (delay > 1000 * 1000 * 1000)
|
||||||
|
return 1000 * 1000;
|
||||||
|
|
||||||
|
return delay / 1000;
|
||||||
|
}
|
||||||
|
|
||||||
void timer_sync(Timer *timer)
|
void timer_sync(Timer *timer)
|
||||||
{
|
{
|
||||||
int64_t sleep_duration;
|
int64_t sleep_duration;
|
||||||
|
@ -40,6 +40,12 @@ void timer_reset(Timer *timer);
|
|||||||
|
|
||||||
void timer_add(Timer *timer, int size);
|
void timer_add(Timer *timer, int size);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of milliseconds to sleep to get back to sync.
|
||||||
|
*/
|
||||||
|
unsigned
|
||||||
|
timer_delay(const Timer *timer);
|
||||||
|
|
||||||
void timer_sync(Timer *timer);
|
void timer_sync(Timer *timer);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user