]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - runtime/InitializeThreading.cpp
JavaScriptCore-903.tar.gz
[apple/javascriptcore.git] / runtime / InitializeThreading.cpp
index cda9fb11ea87e658bbf9803964fb3a8016ae3252..27611b757b34be5c564ce03bb0553ba736e64660 100644 (file)
 #include "config.h"
 #include "InitializeThreading.h"
 
-#include "JSImmediate.h"
-#include "Collector.h"
-#include "DateMath.h"
+#include "Heap.h"
 #include "dtoa.h"
 #include "Identifier.h"
 #include "JSGlobalObject.h"
 #include "UString.h"
+#include <wtf/DateMath.h>
 #include <wtf/Threading.h>
+#include <wtf/WTFThreadData.h>
 
 using namespace WTF;
 
 namespace JSC {
 
-#if PLATFORM(DARWIN) && ENABLE(JSC_MULTIPLE_THREADS)
+#if OS(DARWIN) && ENABLE(JSC_MULTIPLE_THREADS)
 static pthread_once_t initializeThreadingKeyOnce = PTHREAD_ONCE_INIT;
 #endif
 
 static void initializeThreadingOnce()
 {
+    // StringImpl::empty() does not construct its static string in a threadsafe fashion,
+    // so ensure it has been initialized from here.
+    StringImpl::empty();
+
     WTF::initializeThreading();
-    initializeUString();
+    wtfThreadData();
+    JSGlobalData::storeVPtrs();
 #if ENABLE(JSC_MULTIPLE_THREADS)
     s_dtoaP5Mutex = new Mutex;
-    initDateMath();
+    initializeDates();
+    RegisterFile::initializeThreading();
 #endif
 }
 
 void initializeThreading()
 {
-#if PLATFORM(DARWIN) && ENABLE(JSC_MULTIPLE_THREADS)
+#if OS(DARWIN) && ENABLE(JSC_MULTIPLE_THREADS)
     pthread_once(&initializeThreadingKeyOnce, initializeThreadingOnce);
 #else
     static bool initializedThreading = false;