diff options
author | dglazkov@google.com <dglazkov@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-09 22:16:22 +0000 |
---|---|---|
committer | dglazkov@google.com <dglazkov@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-09 22:16:22 +0000 |
commit | 6aaed0ca1a04edac5bedb7bbd0cf620ae9acb037 (patch) | |
tree | 8c81b7b6a86f01413518192d325246f6ee3ed37b /webkit/port | |
parent | 91ecf06406432962102086445cdf9fe30d5acacb (diff) | |
download | chromium_src-6aaed0ca1a04edac5bedb7bbd0cf620ae9acb037.zip chromium_src-6aaed0ca1a04edac5bedb7bbd0cf620ae9acb037.tar.gz chromium_src-6aaed0ca1a04edac5bedb7bbd0cf620ae9acb037.tar.bz2 |
Add Threading Support based on Chromium's MessageLoop, Chromium side.R=darin,brettw
Review URL: http://codereview.chromium.org/19725
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9426 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/port')
-rw-r--r-- | webkit/port/bindings/v8/Threading.cpp | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/webkit/port/bindings/v8/Threading.cpp b/webkit/port/bindings/v8/Threading.cpp deleted file mode 100644 index f005c76..0000000 --- a/webkit/port/bindings/v8/Threading.cpp +++ /dev/null @@ -1,96 +0,0 @@ -// Copyright (c) 2009, Google 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: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * 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. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT -// OWNER OR 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 "Threading.h" -#undef LOG - -#include "base/message_loop.h" -#include "base/task.h" - -namespace WTF { - -struct NewThreadContext { - NewThreadContext(ThreadFunction entryPoint, void* data, const char* name) - : entryPoint(entryPoint) - , data(data) - , name(name) - { } - - ThreadFunction entryPoint; - void* data; - std::string name; - - Mutex creationMutex; -}; - -static void* threadEntryPoint(void* contextData) -{ - NewThreadContext* context = reinterpret_cast<NewThreadContext*>(contextData); - - // Block until our creating thread has completed any extra setup work - { - MutexLocker locker(context->creationMutex); - } - - // Run via Chrome's message loop - MessageLoop message_loop; - message_loop.set_thread_name(context->name); - message_loop.PostTask(FROM_HERE, - NewRunnableFunction(context->entryPoint, context->data)); - message_loop.Run(); - - delete context; - - return NULL; -} - -ThreadIdentifier createThread(ThreadFunction entryPoint, void* data, const char* name) -{ - NewThreadContext* context = new NewThreadContext(entryPoint, data, name); - - // Prevent the thread body from executing until we've established the thread identifier - MutexLocker locker(context->creationMutex); - - return createThreadInternal(threadEntryPoint, context, name); -} - -#if PLATFORM(MAC) || PLATFORM(WIN) - -// This function is deprecated but needs to be kept around for backward -// compatibility. Use the 3-argument version of createThread above. - -ThreadIdentifier createThread(ThreadFunction entryPoint, void* data) -{ - return createThread(entryPoint, data, 0); -} -#endif - -} // namespace WTF |