All pastes #987205 Raw Edit

Untitled

public text v1 · immutable
·published 2008-04-16 09:56 UTC
rendered paste body
Index: JavaScriptCore/ChangeLog
===================================================================
--- JavaScriptCore/ChangeLog	(revision 31938)
+++ JavaScriptCore/ChangeLog	(working copy)
@@ -1,3 +1,16 @@
+2008-04-16  Alexey Proskuryakov  <ap@webkit.org>
+
+        Reviewed by NOBODY (OOPS!).
+
+        Initialize threadMapMutex safely (as already done in ThreadingWin).
+
+        * wtf/ThreadingGtk.cpp:
+        (WTF::threadMapMutex):
+        (WTF::initializeThreading):
+        * wtf/ThreadingPthreads.cpp:
+        (WTF::threadMapMutex):
+        (WTF::initializeThreading):
+
 2008-04-16  Alexey Proskuryakov  <ap@webkit.org>
 
         Reviewed by Adam Roben.
Index: JavaScriptCore/wtf/ThreadingGtk.cpp
===================================================================
--- JavaScriptCore/wtf/ThreadingGtk.cpp	(revision 31933)
+++ JavaScriptCore/wtf/ThreadingGtk.cpp	(working copy)
@@ -41,24 +41,25 @@ Mutex* atomicallyInitializedStaticMutex;
 
 static ThreadIdentifier mainThreadIdentifier;
 
+static Mutex& threadMapMutex()
+{
+    static Mutex mutex;
+    return mutex;
+}
+
 void initializeThreading()
 {
     if (!g_thread_supported()) {
         g_thread_init(NULL);
         ASSERT(!atomicallyInitializedStaticMutex);
         atomicallyInitializedStaticMutex = new Mutex;
+        threadMapMutex();
         wtf_random_init();
         mainThreadIdentifier = currentThread();
     }
     ASSERT(g_thread_supported());
 }
 
-static Mutex& threadMapMutex()
-{
-    static Mutex mutex;
-    return mutex;
-}
-
 static HashMap<ThreadIdentifier, GThread*>& threadMap()
 {
     static HashMap<ThreadIdentifier, GThread*> map;
Index: JavaScriptCore/wtf/ThreadingPthreads.cpp
===================================================================
--- JavaScriptCore/wtf/ThreadingPthreads.cpp	(revision 31933)
+++ JavaScriptCore/wtf/ThreadingPthreads.cpp	(working copy)
@@ -41,21 +41,22 @@ Mutex* atomicallyInitializedStaticMutex;
 
 static ThreadIdentifier mainThreadIdentifier;
 
+static Mutex& threadMapMutex()
+{
+    static Mutex mutex;
+    return mutex;
+}
+
 void initializeThreading()
 {
     if (!atomicallyInitializedStaticMutex) {
         atomicallyInitializedStaticMutex = new Mutex;
+        threadMapMutex();
         wtf_random_init();
         mainThreadIdentifier = currentThread();
     }
 }
 
-static Mutex& threadMapMutex()
-{
-    static Mutex mutex;
-    return mutex;
-}
-
 static HashMap<ThreadIdentifier, pthread_t>& threadMap()
 {
     static HashMap<ThreadIdentifier, pthread_t> map;