namespace WebCore {
+static String defaultMode()
+{
+ return String();
+}
+
class WorkerRunLoop::Task {
WTF_MAKE_NONCOPYABLE(Task); WTF_MAKE_FAST_ALLOCATED;
public:
public:
ModePredicate(const String& mode)
: m_mode(mode)
- , m_defaultMode(mode == WorkerRunLoop::defaultMode())
+ , m_defaultMode(mode == defaultMode())
{
}
ASSERT(!m_nestedCount);
}
-String WorkerRunLoop::defaultMode()
-{
- return String();
-}
-
class RunLoopSetup {
WTF_MAKE_NONCOPYABLE(RunLoopSetup);
public:
ModePredicate modePredicate(defaultMode());
MessageQueueWaitResult result;
do {
-#if ENABLE(OILPAN)
ThreadState::current()->safePoint(ThreadState::NoHeapPointersOnStack);
-#endif
result = runInMode(context, modePredicate, WaitForMessage);
} while (result != MessageQueueTerminated);
runCleanupTasks(context);
}
{
-#if ENABLE(OILPAN)
ThreadState::SafePointScope safePointScope(ThreadState::NoHeapPointersOnStack);
-#endif
task = m_messageQueue.waitForMessageFilteredWithTimeout(result, predicate, absoluteTime);
}
} while (result == MessageQueueTimeout && nextTimeoutEventIsIdleWatchdog);
return m_messageQueue.append(Task::create(task, mode.isolatedCopy()));
}
-bool WorkerRunLoop::postTaskForMode(const Closure& closure, const String& mode)
-{
- return postTaskForMode(CallClosureTask::create(closure), mode);
-}
-
} // namespace WebCore