Index: Source/WebCore/platform/RunLoop.cpp |
diff --git a/Source/WebCore/platform/RunLoop.cpp b/Source/WebCore/platform/RunLoop.cpp |
deleted file mode 100644 |
index 7c02c0c8ac3ca9e9e1ce72e5f9cdbfc409a89eab..0000000000000000000000000000000000000000 |
--- a/Source/WebCore/platform/RunLoop.cpp |
+++ /dev/null |
@@ -1,118 +0,0 @@ |
-/* |
- * Copyright (C) 2010 Apple Inc. All rights reserved. |
- * |
- * Redistribution and use in source and binary forms, with or without |
- * modification, are permitted provided that the following conditions |
- * are met: |
- * 1. Redistributions of source code must retain the above copyright |
- * notice, this list of conditions and the following disclaimer. |
- * 2. Redistributions in binary form must reproduce the above copyright |
- * notice, this list of conditions and the following disclaimer in the |
- * documentation and/or other materials provided with the distribution. |
- * |
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' |
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, |
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS |
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF |
- * THE POSSIBILITY OF SUCH DAMAGE. |
- */ |
- |
-#include "config.h" |
-#include "RunLoop.h" |
- |
-#include <wtf/StdLibExtras.h> |
- |
-namespace WebCore { |
- |
-#if !PLATFORM(MAC) |
- |
-static RunLoop* s_mainRunLoop; |
- |
-void RunLoop::initializeMainRunLoop() |
-{ |
- if (s_mainRunLoop) |
- return; |
- s_mainRunLoop = RunLoop::current(); |
-} |
- |
-RunLoop* RunLoop::current() |
-{ |
- DEFINE_STATIC_LOCAL(WTF::ThreadSpecific<RunLoop>, runLoopData, ()); |
- return &*runLoopData; |
-} |
- |
-RunLoop* RunLoop::main() |
-{ |
- ASSERT(s_mainRunLoop); |
- return s_mainRunLoop; |
-} |
- |
-void RunLoop::setUseApplicationRunLoopOnMainRunLoop() |
-{ |
-} |
- |
-#endif |
- |
-void RunLoop::performWork() |
-{ |
- // It is important to handle the functions in the queue one at a time because while inside one of these |
- // functions we might re-enter RunLoop::performWork() and we need to be able to pick up where we left off. |
- // See http://webkit.org/b/89590 for more discussion. |
- |
- // One possible scenario when handling the function queue is as follows: |
- // - RunLoop::performWork() is invoked with 1 function on the queue |
- // - Handling that function results in 1 more function being enqueued |
- // - Handling that one results in yet another being enqueued |
- // - And so on |
- // |
- // In this situation one invocation of performWork() never returns so all other event sources are blocked. |
- // By only handling up to the number of functions that were in the queue when performWork() is called |
- // we guarantee to occasionally return from the run loop so other event sources will be allowed to spin. |
- |
- Function<void()> function; |
- size_t functionsToHandle = 0; |
- |
- { |
- MutexLocker locker(m_functionQueueLock); |
- functionsToHandle = m_functionQueue.size(); |
- |
- if (m_functionQueue.isEmpty()) |
- return; |
- |
- function = m_functionQueue.takeFirst(); |
- } |
- |
- function(); |
- |
- for (size_t functionsHandled = 1; functionsHandled < functionsToHandle; ++functionsHandled) { |
- { |
- MutexLocker locker(m_functionQueueLock); |
- |
- // Even if we start off with N functions to handle and we've only handled less than N functions, the queue |
- // still might be empty because those functions might have been handled in an inner RunLoop::performWork(). |
- // In that case we should bail here. |
- if (m_functionQueue.isEmpty()) |
- break; |
- |
- function = m_functionQueue.takeFirst(); |
- } |
- |
- function(); |
- } |
-} |
- |
-void RunLoop::dispatch(const Function<void()>& function) |
-{ |
- MutexLocker locker(m_functionQueueLock); |
- m_functionQueue.append(function); |
- |
- wakeUp(); |
-} |
- |
-} // namespace WebCore |