JavaScriptCore:
2009-05-07 Dmitry Titov <[email protected]>
Reviewed by Alexey Proskuryakov and Adam Roben.
https://bugs.webkit.org/show_bug.cgi?id=25348
Change WTF::ThreadIdentifier to be an actual (but wrapped) thread id, remove ThreadMap.
- wtf/Threading.h:
(WTF::ThreadIdentifier::ThreadIdentifier):
(WTF::ThreadIdentifier::isValid):
(WTF::ThreadIdentifier::invalidate):
(WTF::ThreadIdentifier::platformId):
ThreadIdentifier is now a class, containing a PlatformThreadIdentifier and
methods that are used across the code on thread ids: construction, comparisons,
check for 'valid' state etc. '0' is used as invalid id, which happens to just work
with all platform-specific thread id implementations.
All the following files repeatedly reflect the new ThreadIdentifier for each platform.
We remove ThreadMap and threadMapMutex from all of them, remove the functions that
populated/searched/cleared the map and add platform-specific comparison operators
for ThreadIdentifier.
- wtf/gtk/ThreadingGtk.cpp:
(WTF::ThreadIdentifier::operator==):
(WTF::ThreadIdentifier::operator!=):
(WTF::initializeThreading):
(WTF::createThreadInternal):
(WTF::waitForThreadCompletion):
(WTF::currentThread):
- wtf/ThreadingNone.cpp:
(WTF::ThreadIdentifier::operator==):
(WTF::ThreadIdentifier::operator!=):
- wtf/ThreadingPthreads.cpp:
(WTF::ThreadIdentifier::operator==):
(WTF::ThreadIdentifier::operator!=):
(WTF::initializeThreading):
(WTF::createThreadInternal):
(WTF::waitForThreadCompletion):
(WTF::detachThread):
(WTF::currentThread):
- wtf/qt/ThreadingQt.cpp:
(WTF::ThreadIdentifier::operator==):
(WTF::ThreadIdentifier::operator!=):
(WTF::initializeThreading):
(WTF::createThreadInternal):
(WTF::waitForThreadCompletion):
(WTF::currentThread):
- wtf/ThreadingWin.cpp:
(WTF::ThreadIdentifier::operator==):
(WTF::ThreadIdentifier::operator!=):
(WTF::initializeThreading):
(WTF::createThreadInternal): All the platforms (except Windows) used a sequential
counter as a thread ID and mapped it into platform ID. Windows was using native thread
id and mapped it into thread handle. Since we can always obtain a thread handle
by thread id, createThread now closes the handle.
(WTF::waitForThreadCompletion): obtains another one using OpenThread(id) API. If can not obtain a handle,
it means the thread already exited.
(WTF::detachThread):
(WTF::currentThread):
(WTF::detachThreadDeprecated): old function, renamed (for Win Safari 4 beta which uses it for now).
(WTF::waitForThreadCompletionDeprecated): same.
(WTF::currentThreadDeprecated): same.
(WTF::createThreadDeprecated): same.
- bytecode/SamplingTool.h:
- bytecode/SamplingTool.cpp: Use DEFINE_STATIC_LOCAL for a static ThreadIdentifier variable, to avoid static constructor.
- JavaScriptCore.exp: export lists - updated the WTF threading functions decorated names
since they now take a different type as a parameter.
- JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: ditto for Windows, plus added "deprecated" functions
that take old parameter type - turns out public beta of Safari 4 uses those, so they need to be kept along for a while.
- JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: ditto.
WebCore:
2009-05-07 Dmitry Titov <[email protected]>
Reviewed by Alexey Proskuryakov and Adam Roben.
https://bugs.webkit.org/show_bug.cgi?id=25348
Change WTF::ThreadIdentifier to be an actual (but wrapped) thread id, remove ThreadMap.
Most of the change is in WTF.
Unless noted, all the following files changed to use the new ThreadIdentifier::isValid()
method instead of just doing 'if(m_threadID)' kind of checks, since ThreadIdentifier
is now a class rather then an integer.
Also, there is no need to initialize threadID in constructors to 0 now.
- dom/XMLTokenizerLibxml2.cpp:
(WebCore::libxmlLoaderThread): use DEFINE_STATIC_LOCAL and accessor function for static thread id,
since now ThreadIdentifier needs construction and we avoid having global initializers.
(WebCore::matchFunc): use the new accessor function.
(WebCore::openFunc): ditto.
(WebCore::createStringParser): ditto.
(WebCore::createMemoryParser): ditto.
- loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::open):
- platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::SQLiteDatabase):
(WebCore::SQLiteDatabase::close):
- storage/DatabaseThread.cpp:
(WebCore::DatabaseThread::start):
(WebCore::DatabaseThread::databaseThread): remove m_threadID from debug output.
- storage/LocalStorageThread.cpp:
(WebCore::LocalStorageThread::start):
(WebCore::LocalStorageThread::scheduleImport):
(WebCore::LocalStorageThread::scheduleSync):
(WebCore::LocalStorageThread::terminate):
- workers/WorkerThread.cpp:
(WebCore::WorkerThread::start):
(WebCore::WorkerThread::WorkerThread):
(WebCore::WorkerThread::start):
WebKit/win:
2009-05-07 Dmitry Titov <[email protected]>
Reviewed by Alexey Proskuryakov and Adam Roben.
https://bugs.webkit.org/show_bug.cgi?id=25348
Change WTF::ThreadIdentifier to be an actual (but wrapped) thread id, remove ThreadMap.
Most of the change is in WTF and WebCore.
- WebKit.vcproj/WebKit.def: replaced decorated names of WTF threading functions with new ones.
Also, aliased the old implementations so the public Safari 4 beta can load the old WTF functions
which it uses. Next time Safari 4 builds, it will pick up new functions and the deprecated ones
can be removed.
- WebKit.vcproj/WebKit_debug.def: same.