[SCM] WebKit Debian packaging branch, webkit-1.2, updated. upstream/1.1.90-6072-g9a69373

eric at webkit.org eric at webkit.org
Thu Apr 8 02:06:58 UTC 2010


The following commit has been merged in the webkit-1.2 branch:
commit d16b944357bf116f1bbd79b8fa5207d8bebe8086
Author: eric at webkit.org <eric at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Mar 2 22:21:37 2010 +0000

    2010-03-02  Jeremy Orlow  <jorlow at chromium.org>
    
            Reviewed by David Levin.
    
            Revert database thread changes that are no longer required
            https://bugs.webkit.org/show_bug.cgi?id=35519
    
            Jochen Eisinger created 55214 and 55247 to track which database
            owns which thread.  Dmitry suggested that this could also
            be done via TLS, though.  After exploring the options, Jochen
            chose to go the TLS route, so these patches are no longer needed.
    
            * wtf/Threading.h:
            * wtf/ThreadingNone.cpp:
            (WTF::isMainThread):
            * wtf/ThreadingPthreads.cpp:
            (WTF::identifierByPthreadHandle):
            (WTF::establishIdentifierForPthreadHandle):
            (WTF::pthreadHandleForIdentifier):
            (WTF::createThreadInternal):
            (WTF::currentThread):
            * wtf/ThreadingWin.cpp:
            (WTF::threadMap):
            (WTF::storeThreadHandleByIdentifier):
            (WTF::threadHandleForIdentifier):
            (WTF::createThreadInternal):
    2010-03-02  Jeremy Orlow  <jorlow at chromium.org>
    
            Reviewed by David Levin.
    
            Revert database thread changes that are no longer required
            https://bugs.webkit.org/show_bug.cgi?id=35519
    
            Jochen Eisinger created 55214 and 55247 to track which database
            owns which thread.  Dmitry suggested that this could also
            be done via TLS, though.  After exploring the options, Jochen
            chose to go the TLS route, so these patches are no longer needed.
    
            * storage/DatabaseThread.cpp:
            (WebCore::DatabaseThread::DatabaseThread):
            (WebCore::DatabaseThread::databaseThread):
            * storage/DatabaseThread.h:
            (WebCore::DatabaseThread::getThreadID):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@55429 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/JavaScriptCore/ChangeLog b/JavaScriptCore/ChangeLog
index a9fe4ef..790a280 100644
--- a/JavaScriptCore/ChangeLog
+++ b/JavaScriptCore/ChangeLog
@@ -1,3 +1,30 @@
+2010-03-02  Jeremy Orlow  <jorlow at chromium.org>
+
+        Reviewed by David Levin.
+
+        Revert database thread changes that are no longer required
+        https://bugs.webkit.org/show_bug.cgi?id=35519
+
+        Jochen Eisinger created 55214 and 55247 to track which database
+        owns which thread.  Dmitry suggested that this could also
+        be done via TLS, though.  After exploring the options, Jochen
+        chose to go the TLS route, so these patches are no longer needed.
+
+        * wtf/Threading.h:
+        * wtf/ThreadingNone.cpp:
+        (WTF::isMainThread):
+        * wtf/ThreadingPthreads.cpp:
+        (WTF::identifierByPthreadHandle):
+        (WTF::establishIdentifierForPthreadHandle):
+        (WTF::pthreadHandleForIdentifier):
+        (WTF::createThreadInternal):
+        (WTF::currentThread):
+        * wtf/ThreadingWin.cpp:
+        (WTF::threadMap):
+        (WTF::storeThreadHandleByIdentifier):
+        (WTF::threadHandleForIdentifier):
+        (WTF::createThreadInternal):
+
 2010-03-02  Jedrzej Nowacki  <jedrzej.nowacki at nokia.com>
 
         Reviewed by Simon Hausmann.
diff --git a/JavaScriptCore/wtf/Threading.h b/JavaScriptCore/wtf/Threading.h
index b522915..b7a2f08 100644
--- a/JavaScriptCore/wtf/Threading.h
+++ b/JavaScriptCore/wtf/Threading.h
@@ -127,7 +127,6 @@ ThreadIdentifier currentThread();
 bool isMainThread();
 int waitForThreadCompletion(ThreadIdentifier, void**);
 void detachThread(ThreadIdentifier);
-void* threadContext(ThreadIdentifier);
 
 #if USE(PTHREADS)
 typedef pthread_mutex_t PlatformMutex;
diff --git a/JavaScriptCore/wtf/ThreadingNone.cpp b/JavaScriptCore/wtf/ThreadingNone.cpp
index cfc9d31..2e8a259 100644
--- a/JavaScriptCore/wtf/ThreadingNone.cpp
+++ b/JavaScriptCore/wtf/ThreadingNone.cpp
@@ -41,7 +41,6 @@ int waitForThreadCompletion(ThreadIdentifier, void**) { return 0; }
 void detachThread(ThreadIdentifier) { }
 ThreadIdentifier currentThread() { return ThreadIdentifier(); }
 bool isMainThread() { return true; }
-void* threadContext(ThreadIdentifier) { return 0; }
 
 Mutex::Mutex() { }
 Mutex::~Mutex() { }
diff --git a/JavaScriptCore/wtf/ThreadingPthreads.cpp b/JavaScriptCore/wtf/ThreadingPthreads.cpp
index e841f62..2feb808 100644
--- a/JavaScriptCore/wtf/ThreadingPthreads.cpp
+++ b/JavaScriptCore/wtf/ThreadingPthreads.cpp
@@ -53,12 +53,7 @@
 
 namespace WTF {
 
-typedef struct {
-    pthread_t handle;
-    void* context;
-} ThreadInfo;
-
-typedef HashMap<ThreadIdentifier, ThreadInfo> ThreadMap;
+typedef HashMap<ThreadIdentifier, pthread_t> ThreadMap;
 
 static Mutex* atomicallyInitializedStaticMutex;
 
@@ -110,14 +105,14 @@ static ThreadIdentifier identifierByPthreadHandle(const pthread_t& pthreadHandle
 
     ThreadMap::iterator i = threadMap().begin();
     for (; i != threadMap().end(); ++i) {
-        if (pthread_equal(i->second.handle, pthreadHandle))
+        if (pthread_equal(i->second, pthreadHandle))
             return i->first;
     }
 
     return 0;
 }
 
-static ThreadIdentifier establishIdentifierForPthreadHandle(const pthread_t& pthreadHandle, void* context)
+static ThreadIdentifier establishIdentifierForPthreadHandle(const pthread_t& pthreadHandle)
 {
     ASSERT(!identifierByPthreadHandle(pthreadHandle));
 
@@ -125,10 +120,7 @@ static ThreadIdentifier establishIdentifierForPthreadHandle(const pthread_t& pth
 
     static ThreadIdentifier identifierCount = 1;
 
-    ThreadInfo info;
-    info.handle = pthreadHandle;
-    info.context = context;
-    threadMap().add(identifierCount, info);
+    threadMap().add(identifierCount, pthreadHandle);
 
     return identifierCount++;
 }
@@ -137,17 +129,9 @@ static pthread_t pthreadHandleForIdentifier(ThreadIdentifier id)
 {
     MutexLocker locker(threadMapMutex());
 
-    return threadMap().get(id).handle;
-}
-
-static void* contextForIdentifier(ThreadIdentifier id)
-{
-    MutexLocker locker(threadMapMutex());
-
-    return threadMap().get(id).context;
+    return threadMap().get(id);
 }
 
-
 void clearPthreadHandleForIdentifier(ThreadIdentifier id)
 {
     MutexLocker locker(threadMapMutex());
@@ -190,7 +174,7 @@ ThreadIdentifier createThreadInternal(ThreadFunction entryPoint, void* data, con
         delete threadData;
         return 0;
     }
-    return establishIdentifierForPthreadHandle(threadHandle, data);
+    return establishIdentifierForPthreadHandle(threadHandle);
 }
 #else
 ThreadIdentifier createThreadInternal(ThreadFunction entryPoint, void* data, const char*)
@@ -201,7 +185,7 @@ ThreadIdentifier createThreadInternal(ThreadFunction entryPoint, void* data, con
         return 0;
     }
 
-    return establishIdentifierForPthreadHandle(threadHandle, data);
+    return establishIdentifierForPthreadHandle(threadHandle);
 }
 #endif
 
@@ -251,7 +235,7 @@ ThreadIdentifier currentThread()
         return id;
 
     // Not a WTF-created thread, ThreadIdentifier is not established yet.
-    id = establishIdentifierForPthreadHandle(pthread_self(), 0);
+    id = establishIdentifierForPthreadHandle(pthread_self());
     ThreadIdentifierData::initialize(id);
     return id;
 }
@@ -265,11 +249,6 @@ bool isMainThread()
 #endif
 }
 
-void* threadContext(ThreadIdentifier id)
-{
-    return contextForIdentifier(id); 
-}
-
 Mutex::Mutex()
 {
     pthread_mutex_init(&m_mutex, NULL);
diff --git a/JavaScriptCore/wtf/ThreadingWin.cpp b/JavaScriptCore/wtf/ThreadingWin.cpp
index 75da7b4..73c3f0c 100644
--- a/JavaScriptCore/wtf/ThreadingWin.cpp
+++ b/JavaScriptCore/wtf/ThreadingWin.cpp
@@ -118,11 +118,6 @@ typedef struct tagTHREADNAME_INFO {
 } THREADNAME_INFO;
 #pragma pack(pop)
 
-typedef struct {
-    HANDLE handle;
-    void* context;
-} ThreadInfo;
-
 void initializeCurrentThreadInternal(const char* szThreadName)
 {
     THREADNAME_INFO info;
@@ -170,32 +165,23 @@ void initializeThreading()
     }
 }
 
-static HashMap<DWORD, ThreadInfo>& threadMap()
+static HashMap<DWORD, HANDLE>& threadMap()
 {
-    static HashMap<DWORD, ThreadInfo> map;
+    static HashMap<DWORD, HANDLE> map;
     return map;
 }
 
-static void storeThreadHandleByIdentifier(DWORD threadID, HANDLE threadHandle, void* context)
+static void storeThreadHandleByIdentifier(DWORD threadID, HANDLE threadHandle)
 {
     MutexLocker locker(threadMapMutex());
     ASSERT(!threadMap().contains(threadID));
-    ThreadInfo info;
-    info.handle = threadHandle;
-    info.context = context;
-    threadMap().add(threadID, info);
+    threadMap().add(threadID, threadHandle);
 }
 
 static HANDLE threadHandleForIdentifier(ThreadIdentifier id)
 {
     MutexLocker locker(threadMapMutex());
-    return threadMap().get(id).handle;
-}
-
-static void* contextForIdentifier(ThreadIdentifier id)
-{
-    MutexLocker locker(threadMapMutex());
-    return threadMap().get(id).context;
+    return threadMap().get(id);
 }
 
 static void clearThreadHandleForIdentifier(ThreadIdentifier id)
@@ -251,7 +237,7 @@ ThreadIdentifier createThreadInternal(ThreadFunction entryPoint, void* data, con
     }
 
     threadID = static_cast<ThreadIdentifier>(threadIdentifier);
-    storeThreadHandleByIdentifier(threadIdentifier, threadHandle, data);
+    storeThreadHandleByIdentifier(threadIdentifier, threadHandle);
 
     return threadID;
 }
@@ -294,11 +280,6 @@ bool isMainThread()
     return currentThread() == mainThreadIdentifier;
 }
 
-void* threadContext(ThreadIdentifier threadID)
-{
-    return contextForIdentifier(threadID);
-}
-
 Mutex::Mutex()
 {
     m_mutex.m_recursionCount = 0;
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index bf1a576..61d6e7e 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,21 @@
+2010-03-02  Jeremy Orlow  <jorlow at chromium.org>
+
+        Reviewed by David Levin.
+
+        Revert database thread changes that are no longer required
+        https://bugs.webkit.org/show_bug.cgi?id=35519
+
+        Jochen Eisinger created 55214 and 55247 to track which database
+        owns which thread.  Dmitry suggested that this could also
+        be done via TLS, though.  After exploring the options, Jochen
+        chose to go the TLS route, so these patches are no longer needed.
+
+        * storage/DatabaseThread.cpp:
+        (WebCore::DatabaseThread::DatabaseThread):
+        (WebCore::DatabaseThread::databaseThread):
+        * storage/DatabaseThread.h:
+        (WebCore::DatabaseThread::getThreadID):
+
 2010-03-02  Brady Eidson  <beidson at apple.com>
 
         Reviewed by Sam Weinig.
diff --git a/WebCore/storage/DatabaseThread.cpp b/WebCore/storage/DatabaseThread.cpp
index 65092f1..ec4c6d1 100644
--- a/WebCore/storage/DatabaseThread.cpp
+++ b/WebCore/storage/DatabaseThread.cpp
@@ -42,7 +42,6 @@ namespace WebCore {
 
 DatabaseThread::DatabaseThread()
     : m_threadID(0)
-    , m_databaseOfCurrentTask(0)
     , m_transactionClient(new SQLTransactionClient())
     , m_transactionCoordinator(new SQLTransactionCoordinator())
     , m_cleanupSync(0)
@@ -97,10 +96,7 @@ void* DatabaseThread::databaseThread()
 
     AutodrainedPool pool;
     while (OwnPtr<DatabaseTask> task = m_queue.waitForMessage()) {
-        ASSERT(!m_databaseOfCurrentTask);
-        m_databaseOfCurrentTask = task->database();
         task->performTask();
-        m_databaseOfCurrentTask = 0;
         pool.cycle();
     }
 
diff --git a/WebCore/storage/DatabaseThread.h b/WebCore/storage/DatabaseThread.h
index daf2a9e..3702619 100644
--- a/WebCore/storage/DatabaseThread.h
+++ b/WebCore/storage/DatabaseThread.h
@@ -64,7 +64,6 @@ public:
     void recordDatabaseOpen(Database*);
     void recordDatabaseClosed(Database*);
     ThreadIdentifier getThreadID() { return m_threadID; }
-    Database* getDatabaseOfCurrentTask() { return m_databaseOfCurrentTask; }
 
     SQLTransactionClient* transactionClient() { return m_transactionClient.get(); }
     SQLTransactionCoordinator* transactionCoordinator() { return m_transactionCoordinator.get(); }
@@ -81,8 +80,6 @@ private:
 
     MessageQueue<DatabaseTask> m_queue;
 
-    Database* m_databaseOfCurrentTask;
-
     // This set keeps track of the open databases that have been used on this thread.
     typedef HashSet<RefPtr<Database> > DatabaseSet;
     DatabaseSet m_openDatabaseSet;

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list