Chromium Code Reviews| Index: net/base/backoff_entry.cc |
| diff --git a/net/base/backoff_entry.cc b/net/base/backoff_entry.cc |
| index b1826b7af469b4d72cfccd6ad849173ceb1f24fe..43037f6d2f89144d6d9b2aa3a150d8dcff1c01f4 100644 |
| --- a/net/base/backoff_entry.cc |
| +++ b/net/base/backoff_entry.cc |
| @@ -134,6 +134,10 @@ base::TimeTicks BackoffEntry::CalculateReleaseTime() const { |
| // effective_failure_count - 1) * Uniform(1 - jitter_factor, 1] |
| double delay = policy_->initial_delay_ms; |
| delay *= pow(policy_->multiply_factor, effective_failure_count - 1); |
| + if (isinf(delay)) { |
| + delay = std::max(policy_->maximum_backoff_ms, |
|
cbentzel
2014/06/14 15:16:07
maximum_backoff_ms is not always set - so it seems
cbentzel
2014/06/14 15:30:47
Actually, we'd reach integral overflow with this a
Ryan Sleevi
2014/06/16 17:20:47
^ base/basictypes.h has kint64max / kint64min
Nicolas Zea
2014/06/16 20:27:25
Switched to doing all overflow checking via Checke
|
| + static_cast<int64>(policy_->initial_delay_ms)); |
| + } |
| delay -= base::RandDouble() * policy_->jitter_factor * delay; |
| const int64 kMaxInt64 = std::numeric_limits<int64>::max(); |