From 6a10916ddab5b289bc1f83b835818bb907bcda3c Mon Sep 17 00:00:00 2001 From: Christophe Romain Date: Fri, 29 Apr 2016 10:57:34 +0200 Subject: [PATCH] Let shaper cope with low resolution system clock We no longer rely on getting unique values from clock source, so we need to handle cope with systems which does not have a microsecond resolution on system clock (such as MS Windows) --- src/shaper.erl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/shaper.erl b/src/shaper.erl index a136c2130..eb82b8faa 100644 --- a/src/shaper.erl +++ b/src/shaper.erl @@ -124,9 +124,13 @@ update(#maxrate{} = State, Size) -> true -> 0 end, NextNow = p1_time_compat:system_time(micro_seconds) + Pause * 1000, + Div = case NextNow - State#maxrate.lasttime of + 0 -> 1; + V -> V + end, {State#maxrate{lastrate = (State#maxrate.lastrate + - 1000000 * Size / (NextNow - State#maxrate.lasttime)) + 1000000 * Size / Div) / 2, lasttime = NextNow}, Pause}.