summaryrefslogtreecommitdiffstats
path: root/base/timer.cc
diff options
context:
space:
mode:
authormarkus@chromium.org <markus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-24 23:53:51 +0000
committermarkus@chromium.org <markus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-09-24 23:53:51 +0000
commit545a8b0702d8054b669438e9ad3900c1b11a5123 (patch)
tree3b8c4847c2d2143cc430436ceebcb1877474ff17 /base/timer.cc
parentecb0a024ee469a8d591fb95ac4f8db9c6217f462 (diff)
downloadchromium_src-545a8b0702d8054b669438e9ad3900c1b11a5123.zip
chromium_src-545a8b0702d8054b669438e9ad3900c1b11a5123.tar.gz
chromium_src-545a8b0702d8054b669438e9ad3900c1b11a5123.tar.bz2
When converting between units of time or data types of different precision,
we have to be careful to consistently round in the same direction. Timeout checks usually check if Now() is less or equal to a deadline in order to determine if a timeout has occurred. This correctly handles the case where actual sleep times are equal or longer than requested sleep times. But if we round down when setting the sleep delay, this can result in unnecessary and expensive looping. Make sure, we always round up when converting to a format with less precision. BUG=none TEST=none Review URL: http://codereview.chromium.org/196053 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@27146 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/timer.cc')
-rw-r--r--base/timer.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/base/timer.cc b/base/timer.cc
index 2807606..ce5fab6 100644
--- a/base/timer.cc
+++ b/base/timer.cc
@@ -22,7 +22,7 @@ void BaseTimer_Helper::InitiateDelayedTask(TimerTask* timer_task) {
delayed_task_->timer_ = this;
MessageLoop::current()->PostDelayedTask(
FROM_HERE, timer_task,
- static_cast<int>(timer_task->delay_.InMilliseconds()));
+ static_cast<int>(timer_task->delay_.InMillisecondsRoundedUp()));
}
} // namespace base