Underline when empirical delay gets >500ms, even if SRTT hasn't (fixes #35)

This commit is contained in:
Keith Winstein
2012-03-07 04:01:18 -05:00
parent 562ab991c8
commit dc1c49975f
2 changed files with 14 additions and 4 deletions
+11 -3
View File
@@ -382,13 +382,18 @@ void PredictionEngine::cull( const Framebuffer &fb )
srtt_trigger = false;
}
/* control flagging with hysteresis */
/* control underlining with hysteresis */
if ( send_interval > FLAG_TRIGGER_HIGH ) {
flagging = true;
} else if ( send_interval <= FLAG_TRIGGER_LOW ) {
flagging = false;
}
/* really big glitches also activate underlining */
if ( glitch_trigger > GLITCH_REPAIR_COUNT ) {
flagging = true;
}
/* go through cell predictions */
BOOST_AUTO( i, overlays.begin() );
@@ -473,8 +478,11 @@ void PredictionEngine::cull( const Framebuffer &fb )
case Pending:
/* When a prediction takes a long time to be confirmed, we
activate the predictions even if SRTT is low */
if ( (now - j->prediction_time) >= GLITCH_THRESHOLD ) {
glitch_trigger = GLITCH_REPAIR_COUNT;
if ( (now - j->prediction_time) >= GLITCH_FLAG_THRESHOLD ) {
glitch_trigger = GLITCH_REPAIR_COUNT * 2; /* display and underline */
} else if ( ((now - j->prediction_time) >= GLITCH_THRESHOLD)
&& (glitch_trigger < GLITCH_REPAIR_COUNT) ) {
glitch_trigger = GLITCH_REPAIR_COUNT; /* just display */
}
break;