summaryrefslogtreecommitdiff
path: root/deps/v8/test/unittests/base/platform/time-unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/unittests/base/platform/time-unittest.cc')
-rw-r--r--deps/v8/test/unittests/base/platform/time-unittest.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/deps/v8/test/unittests/base/platform/time-unittest.cc b/deps/v8/test/unittests/base/platform/time-unittest.cc
index 19420d5dc6..d357a8aa62 100644
--- a/deps/v8/test/unittests/base/platform/time-unittest.cc
+++ b/deps/v8/test/unittests/base/platform/time-unittest.cc
@@ -392,6 +392,15 @@ TEST(ThreadTicks, MAYBE_ThreadNow) {
// Make sure that ThreadNow value is non-zero.
EXPECT_GT(begin_thread, ThreadTicks());
int iterations_count = 0;
+
+ // Some systems have low resolution thread timers, this code makes sure
+ // that thread time has progressed by at least one tick.
+ // Limit waiting to 10ms to prevent infinite loops.
+ while (ThreadTicks::Now() == begin_thread &&
+ ((TimeTicks::Now() - begin).InMicroseconds() < 10000)) {
+ }
+ EXPECT_GT(ThreadTicks::Now(), begin_thread);
+
do {
// Sleep for 10 milliseconds to get the thread de-scheduled.
OS::Sleep(base::TimeDelta::FromMilliseconds(10));