| Index: base/message_loop/message_pump_default.cc
|
| diff --git a/base/message_loop/message_pump_default.cc b/base/message_loop/message_pump_default.cc
|
| index 27c19e0227bc6f9d6c0f0d71562a2d14c466a42c..daa80d853236a132f880f17de3a382f75f39c5dc 100644
|
| --- a/base/message_loop/message_pump_default.cc
|
| +++ b/base/message_loop/message_pump_default.cc
|
| @@ -3,6 +3,8 @@
|
| // found in the LICENSE file.
|
|
|
| #include "base/message_loop/message_pump_default.h"
|
| +
|
| +#include <algorithm>
|
|
|
| #include "base/logging.h"
|
| #include "base/threading/thread_restrictions.h"
|
| @@ -52,6 +54,13 @@
|
| event_.Wait();
|
| } else {
|
| TimeDelta delay = delayed_work_time_ - TimeTicks::Now();
|
| +#if defined(OS_WIN)
|
| + // If the delay is greater than zero and under 1 ms we need to round up to
|
| + // 1 ms or else we will end up spinning until it counts down to zero
|
| + // because sub-ms waits aren't supported on Windows.
|
| + if (delay > TimeDelta())
|
| + delay = std::max(delay, TimeDelta::FromMilliseconds(1));
|
| +#endif
|
| if (delay > TimeDelta()) {
|
| event_.TimedWait(delay);
|
| } else {
|
|
|