Index: Source/core/workers/WorkerRunLoop.cpp |
diff --git a/Source/core/workers/WorkerRunLoop.cpp b/Source/core/workers/WorkerRunLoop.cpp |
index 09c4d05c8af252bb544b2b04e1345f2ce195311b..538f4ac2ed3151a3878441679bf9e17e7e1ab7a6 100644 |
--- a/Source/core/workers/WorkerRunLoop.cpp |
+++ b/Source/core/workers/WorkerRunLoop.cpp |
@@ -179,6 +179,7 @@ MessageQueueWaitResult WorkerRunLoop::run(MessageQueue<blink::WebThread::Task>& |
ASSERT(m_context->thread()); |
ASSERT(m_context->thread()->isCurrentThread()); |
+ bool isDebuggerQueue = (&queue == &m_debuggerMessageQueue); |
bool nextTimeoutEventIsIdleWatchdog; |
MessageQueueWaitResult result; |
OwnPtr<blink::WebThread::Task> task; |
@@ -186,7 +187,7 @@ MessageQueueWaitResult WorkerRunLoop::run(MessageQueue<blink::WebThread::Task>& |
double absoluteTime = 0.0; |
nextTimeoutEventIsIdleWatchdog = false; |
if (waitMode == WaitForMessage) { |
- absoluteTime = m_sharedTimer->isActive() ? m_sharedTimer->fireTime() : MessageQueue<blink::WebThread::Task>::infiniteTime(); |
+ absoluteTime = !isDebuggerQueue && m_sharedTimer->isActive() ? m_sharedTimer->fireTime() : MessageQueue<blink::WebThread::Task>::infiniteTime(); |
// Do a script engine idle notification if the next event is distant enough. |
const double kMinIdleTimespan = 0.3; // seconds |
@@ -225,6 +226,7 @@ MessageQueueWaitResult WorkerRunLoop::run(MessageQueue<blink::WebThread::Task>& |
break; |
case MessageQueueTimeout: |
+ ASSERT(!isDebuggerQueue || waitMode != WaitForMessage); |
if (!m_context->isClosing()) |
m_sharedTimer->fire(); |
break; |