Changeset 58266 in webkit
- Timestamp:
- Apr 26, 2010 3:38:55 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 56 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/ChangeLog
r58248 r58266 1 2010-04-25 Sam Weinig <sam@webkit.org> 2 3 Reviewed by Maciej Stachowiak. 4 5 Fix for https://bugs.webkit.org/show_bug.cgi?id=38097 6 Disentangle initializing the main thread from initializing threading 7 8 This is the first step in getting rid of the WEB_THREAD #define and 9 paving the way to allowing mac both WebKit and WebKit2 to use the same 10 WebCore. 11 12 * JavaScriptCore.exp: Export initializeMainThread and initializeMainThreadToProcessMainThread. 13 * JavaScriptCore.xcodeproj/project.pbxproj: Sort files. 14 15 * wtf/MainThread.cpp: 16 (WTF::mainThreadInitializationMutex): 17 (WTF::mainThreadFunctionQueueMutex): 18 (WTF::initializeMainThread): 19 (WTF::deprecatedInitializeMainThread): 20 * wtf/MainThread.h: 21 Added Mac only initializeMainThreadToProcessMainThread which sets up callOnMainThread 22 and isMainThead calls to assume that WebCore's main thread is also the 23 process's main thread. Since it is possible that both initializeMainThread 24 and initializeMainThreadToProcessMainThread could be called, the first one called 25 wins (either will work). 26 27 * wtf/Threading.h: Moved to top of file. 28 29 * wtf/ThreadingPthreads.cpp: 30 (WTF::initializeThreading): Remove call to initializeMainThread. 31 * wtf/ThreadingWin.cpp: 32 (WTF::initializeThreading): Ditto. 33 * wtf/gtk/ThreadingGtk.cpp: 34 (WTF::initializeThreading): Ditto. 35 36 * wtf/mac/MainThreadMac.mm: 37 (WTF::initializeMainThreadPlatform): 38 (WTF::initializeMainThreadToProcessMainThread): 39 (WTF::scheduleDispatchFunctionsOnMainThread): 40 (WTF::isMainThread): 41 Add runtime switch between the old behavior of using the system's main 42 thread and a stored pointer to the main thread. Tiger always uses the 43 system's main thread. 44 45 * wtf/qt/ThreadingQt.cpp: 46 (WTF::initializeThreading): Remove call to initializeMainThread. 47 * wtf/win/MainThreadWin.cpp: 48 (WTF::initializeMainThreadPlatform): Add call to initializeCurrentThreadInternal 49 removed from initializeThreading. 50 1 51 2010-04-26 Jedrzej Nowacki <jedrzej.nowacki@nokia.com> 2 52 -
trunk/JavaScriptCore/JavaScriptCore.exp
r58136 r58266 332 332 __ZN3WTF19initializeThreadingEv 333 333 __ZN3WTF20fastMallocStatisticsEv 334 __ZN3WTF20initializeMainThreadEv 334 335 __ZN3WTF21RefCountedLeakCounter16suppressMessagesEPKc 335 336 __ZN3WTF21RefCountedLeakCounter24cancelMessageSuppressionEPKc … … 347 348 __ZN3WTF37parseDateFromNullTerminatedCharactersEPKc 348 349 __ZN3WTF38unlockAtomicallyInitializedStaticMutexEv 350 __ZN3WTF39initializeMainThreadToProcessMainThreadEv 351 __ZN3WTF3MD58addBytesEPKhm 352 __ZN3WTF3MD58checksumEv 349 353 __ZN3WTF3MD5C1Ev 350 __ZN3WTF3MD58checksumEv351 __ZN3WTF3MD58addBytesEPKhm352 354 __ZN3WTF5Mutex4lockEv 353 355 __ZN3WTF5Mutex6unlockEv -
trunk/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
r58206 r58266 1346 1346 isa = PBXGroup; 1347 1347 children = ( 1348 511FC4CA117EE2A800425272 /* MD5.h */,1349 511FC4C7117EE23D00425272 /* MD5.cpp */,1350 1348 06D358A00DAAD9C4003B174E /* mac */, 1351 1349 8656573E115BE35200291F40 /* text */, … … 1355 1353 65E217B808E7EECC0023E5F6 /* Assertions.cpp */, 1356 1354 65E217B708E7EECC0023E5F6 /* Assertions.h */, 1355 BC5F7BBB11823B590052C02C /* Atomics.h */, 1357 1356 E1A596370DE3E1C300C17E37 /* AVLTree.h */, 1358 1357 A7A1F7AA0F252B3C00E184E2 /* ByteArray.cpp */, … … 1374 1373 657EEBBF094E445E008C9C7B /* HashCountedSet.h */, 1375 1374 65DFC92A08EA173A00F7300B /* HashFunctions.h */, 1376 BC5F7BBB11823B590052C02C /* Atomics.h */,1377 BC5F7BBC11823B590052C02C /* ThreadingPrimitives.h */,1378 BC5F7BBD11823B590052C02C /* ThreadSafeShared.h */,1379 1375 652246A40C8D7A0E007BDAF7 /* HashIterators.h */, 1380 1376 65DFC92B08EA173A00F7300B /* HashMap.h */, … … 1390 1386 5DBD18AF0C5401A700C15EAE /* MallocZoneSupport.h */, 1391 1387 BCF6553B0A2048DE0038A194 /* MathExtras.h */, 1388 511FC4C7117EE23D00425272 /* MD5.cpp */, 1389 511FC4CA117EE2A800425272 /* MD5.h */, 1392 1390 E1EE798B0D6CA53D00FEA3BA /* MessageQueue.h */, 1393 1391 9303F5690991190000AD71B8 /* Noncopyable.h */, … … 1424 1422 5D6A566A0F05995500266145 /* Threading.cpp */, 1425 1423 E1EE79220D6C95CD00FEA3BA /* Threading.h */, 1424 BC5F7BBC11823B590052C02C /* ThreadingPrimitives.h */, 1426 1425 E1EE793C0D6C9B9200FEA3BA /* ThreadingPthreads.cpp */, 1426 BC5F7BBD11823B590052C02C /* ThreadSafeShared.h */, 1427 1427 E1B7C8BD0DA3A3360074B0DC /* ThreadSpecific.h */, 1428 1428 0B330C260F38C62300692DE3 /* TypeTraits.cpp */, -
trunk/JavaScriptCore/wtf/MainThread.cpp
r58179 r58266 30 30 #include "MainThread.h" 31 31 32 #include "StdLibExtras.h"33 32 #include "CurrentTime.h" 34 33 #include "Deque.h" 34 #include "StdLibExtras.h" 35 35 #include "Threading.h" 36 36 37 37 namespace WTF { 38 39 #if !PLATFORM(MAC) && !PLATFORM(QT)40 static ThreadIdentifier mainThreadIdentifier;41 #endif42 38 43 39 struct FunctionWithContext { … … 57 53 58 54 static bool callbacksPaused; // This global variable is only accessed from main thread. 59 60 Mutex& mainThreadFunctionQueueMutex() 55 #if !PLATFORM(MAC) && !PLATFORM(QT) 56 static ThreadIdentifier mainThreadIdentifier; 57 #endif 58 59 static Mutex& mainThreadFunctionQueueMutex() 61 60 { 62 61 DEFINE_STATIC_LOCAL(Mutex, staticMutex, ()); … … 70 69 } 71 70 71 72 #if !PLATFORM(MAC) 73 72 74 void initializeMainThread() 73 75 { 76 static bool initializedMainThread; 77 if (initializedMainThread) 78 return; 79 initializedMainThread = true; 80 81 #if !PLATFORM(QT) 82 mainThreadIdentifier = currentThread(); 83 #endif 84 74 85 mainThreadFunctionQueueMutex(); 75 86 initializeMainThreadPlatform(); 76 77 #if !PLATFORM(MAC) && !PLATFORM(QT) 78 mainThreadIdentifier = currentThread(); 79 #endif 80 } 87 } 88 89 #else 90 91 static pthread_once_t initializeMainThreadKeyOnce = PTHREAD_ONCE_INIT; 92 93 static void initializeMainThreadOnce() 94 { 95 mainThreadFunctionQueueMutex(); 96 initializeMainThreadPlatform(); 97 } 98 99 void initializeMainThread() 100 { 101 pthread_once(&initializeMainThreadKeyOnce, initializeMainThreadOnce); 102 } 103 104 static void initializeMainThreadToProcessMainThreadOnce() 105 { 106 mainThreadFunctionQueueMutex(); 107 initializeMainThreadToProcessMainThreadPlatform(); 108 } 109 110 void initializeMainThreadToProcessMainThread() 111 { 112 pthread_once(&initializeMainThreadKeyOnce, initializeMainThreadToProcessMainThreadOnce); 113 } 114 #endif 81 115 82 116 // 0.1 sec delays in UI is approximate threshold when they become noticeable. Have a limit that's half of that. -
trunk/JavaScriptCore/wtf/MainThread.h
r58179 r58266 1 1 /* 2 * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.2 * Copyright (C) 2007, 2008, 2010 Apple Inc. All rights reserved. 3 3 * Copyright (C) 2007 Justin Haygood (jhaygood@reaktix.com) 4 4 * … … 31 31 #define MainThread_h 32 32 33 #include <stdint.h> 34 33 35 namespace WTF { 34 36 35 class Mutex; 36 37 typedef uint32_t ThreadIdentifier; 37 38 typedef void MainThreadFunction(void*); 38 39 40 // Must be called from the main thread. 41 void initializeMainThread(); 42 39 43 void callOnMainThread(MainThreadFunction*, void* context); 40 41 // Blocks the thread until the call finishes on the main thread. Misusing this can easily cause deadlocks.42 44 void callOnMainThreadAndWait(MainThreadFunction*, void* context); 43 44 45 void setMainThreadCallbacksPaused(bool paused); 45 46 46 // Must be called from the main thread (Darwin is an exception to this rule). 47 void initializeMainThread(); 47 bool isMainThread(); 48 48 49 // These functions are internal to the callOnMainThread implementation.49 // NOTE: these functions are internal to the callOnMainThread implementation. 50 50 void initializeMainThreadPlatform(); 51 51 void scheduleDispatchFunctionsOnMainThread(); 52 Mutex& mainThreadFunctionQueueMutex();53 52 void dispatchFunctionsFromMainThread(); 54 53 55 bool isMainThread(); 54 #if PLATFORM(MAC) 55 // This version of initializeMainThread sets up the main thread as corresponding 56 // to the process's main thread, and not necessarily the thread that calls this 57 // function. It should only be used as a legacy aid for Mac WebKit. 58 void initializeMainThreadToProcessMainThread(); 59 void initializeMainThreadToProcessMainThreadPlatform(); 60 #endif 56 61 57 62 } // namespace WTF -
trunk/JavaScriptCore/wtf/Threading.h
r58206 r58266 82 82 typedef void* (*ThreadFunction)(void* argument); 83 83 84 // This function must be called from the main thread. It is safe to call it repeatedly. 85 // Darwin is an exception to this rule: it is OK to call it from any thread, the only 86 // requirement is that the calls are not reentrant. 87 void initializeThreading(); 88 84 89 // Returns 0 if thread creation failed. 85 90 // The thread name must be a literal since on some platforms it's passed in to the thread. … … 97 102 void detachThread(ThreadIdentifier); 98 103 99 // This function must be called from the main thread. It is safe to call it repeatedly.100 // Darwin is an exception to this rule: it is OK to call it from any thread, the only requirement is that the calls are not reentrant.101 void initializeThreading();102 104 103 105 void lockAtomicallyInitializedStaticMutex(); -
trunk/JavaScriptCore/wtf/ThreadingPthreads.cpp
r58179 r58266 68 68 void initializeThreading() 69 69 { 70 if ( !atomicallyInitializedStaticMutex) {71 atomicallyInitializedStaticMutex = new Mutex;72 threadMapMutex(); 73 initializeRandomNumberGenerator();74 initializeMainThread();75 }70 if (atomicallyInitializedStaticMutex) 71 return; 72 73 atomicallyInitializedStaticMutex = new Mutex; 74 threadMapMutex(); 75 initializeRandomNumberGenerator(); 76 76 } 77 77 -
trunk/JavaScriptCore/wtf/ThreadingWin.cpp
r58179 r58266 146 146 } 147 147 148 149 148 static Mutex& threadMapMutex() 150 149 { … … 155 154 void initializeThreading() 156 155 { 157 if (!atomicallyInitializedStaticMutex) { 158 atomicallyInitializedStaticMutex = new Mutex; 159 threadMapMutex(); 160 initializeRandomNumberGenerator(); 161 initializeMainThread(); 162 initializeCurrentThreadInternal("Main Thread"); 163 } 156 if (atomicallyInitializedStaticMutex) 157 return; 158 159 atomicallyInitializedStaticMutex = new Mutex; 160 threadMapMutex(); 161 initializeRandomNumberGenerator(); 164 162 } 165 163 -
trunk/JavaScriptCore/wtf/gtk/ThreadingGtk.cpp
r58179 r58266 61 61 threadMapMutex(); 62 62 initializeRandomNumberGenerator(); 63 initializeMainThread();64 63 } 65 64 } -
trunk/JavaScriptCore/wtf/mac/MainThreadMac.mm
r58179 r58266 32 32 #import <CoreFoundation/CoreFoundation.h> 33 33 #import <Foundation/NSThread.h> 34 #import <stdio.h> 34 35 #import <wtf/Assertions.h> 35 36 #import <wtf/Threading.h> … … 51 52 namespace WTF { 52 53 53 static WTFMainThreadCaller* staticMainThreadCaller = nil;54 #if USE(WEB_THREAD) 55 static pthread_t mainThread;56 static NSThread* webThread = nil;57 #endif 54 static WTFMainThreadCaller* staticMainThreadCaller; 55 static bool isTimerPosted; // This is only accessed on the 'main' thread. 56 static bool mainThreadEstablishedAsPthreadMain; 57 static pthread_t mainThreadPthread; 58 static NSThread* mainThreadNSThread; 58 59 59 60 void initializeMainThreadPlatform() 60 61 { 62 #if !defined(BUILDING_ON_TIGER) 61 63 ASSERT(!staticMainThreadCaller); 62 64 staticMainThreadCaller = [[WTFMainThreadCaller alloc] init]; 63 65 64 #if USE(WEB_THREAD) 65 mainThread = pthread_self(); 66 webThread = [[NSThread currentThread] retain]; 66 mainThreadEstablishedAsPthreadMain = false; 67 mainThreadPthread = pthread_self(); 68 mainThreadNSThread = [[NSThread currentThread] retain]; 69 #else 70 ASSERT_NOT_REACHED(); 67 71 #endif 68 72 } 69 73 70 static bool isTimerPosted; // This is only accessed on the 'main' thread. 74 void initializeMainThreadToProcessMainThreadPlatform() 75 { 76 if (!pthread_main_np()) 77 NSLog(@"WebKit Threading Violation - initial use of WebKit from a secondary thread."); 78 79 ASSERT(!staticMainThreadCaller); 80 staticMainThreadCaller = [[WTFMainThreadCaller alloc] init]; 81 82 mainThreadEstablishedAsPthreadMain = true; 83 mainThreadPthread = 0; 84 mainThreadNSThread = nil; 85 } 71 86 72 87 static void timerFired(CFRunLoopTimerRef timer, void*) … … 88 103 } 89 104 90 91 105 void scheduleDispatchFunctionsOnMainThread() 92 106 { … … 98 112 } 99 113 100 #if USE(WEB_THREAD) 101 [staticMainThreadCaller performSelector:@selector(call) onThread:webThread withObject:nil waitUntilDone:NO]; 114 if (mainThreadEstablishedAsPthreadMain) { 115 ASSERT(!mainThreadNSThread); 116 [staticMainThreadCaller performSelectorOnMainThread:@selector(call) withObject:nil waitUntilDone:NO]; 117 return; 118 } 119 120 #if !defined(BUILDING_ON_TIGER) 121 ASSERT(mainThreadNSThread); 122 [staticMainThreadCaller performSelector:@selector(call) onThread:mainThreadNSThread withObject:nil waitUntilDone:NO]; 102 123 #else 103 [staticMainThreadCaller performSelectorOnMainThread:@selector(call) withObject:nil waitUntilDone:NO];124 ASSERT_NOT_REACHED(); 104 125 #endif 105 126 } … … 107 128 bool isMainThread() 108 129 { 109 #if USE(WEB_THREAD) 110 return pthread_equal(pthread_self(), mainThread); 130 if (mainThreadEstablishedAsPthreadMain) { 131 ASSERT(!mainThreadPthread); 132 return pthread_main_np(); 133 } 134 135 #if !defined(BUILDING_ON_TIGER) 136 ASSERT(mainThreadPthread); 137 return pthread_equal(pthread_self(), mainThreadPthread); 111 138 #else 112 return pthread_main_np();139 ASSERT_NOT_REACHED(); 113 140 #endif 114 141 } -
trunk/JavaScriptCore/wtf/qt/ThreadingQt.cpp
r58179 r58266 145 145 threadMapMutex(); 146 146 initializeRandomNumberGenerator(); 147 initializeMainThread();148 147 } 149 148 } -
trunk/JavaScriptCore/wtf/win/MainThreadWin.cpp
r52791 r58266 78 78 CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, hWndParent, 0, 0, 0); 79 79 threadingFiredMessage = RegisterWindowMessage(L"com.apple.WebKit.MainThreadFired"); 80 81 initializeCurrentThreadInternal("Main Thread"); 80 82 } 81 83 -
trunk/WebCore/ChangeLog
r58264 r58266 1 2010-04-25 Sam Weinig <sam@webkit.org> 2 3 Reviewed by Maciej Stachowiak. 4 5 Fix for https://bugs.webkit.org/show_bug.cgi?id=38097 6 Disentangle initializing the main thread from initializing threading 7 8 * WebCore.xcodeproj/project.pbxproj: Sort files. 9 10 * accessibility/mac/AccessibilityObjectWrapper.mm: Remove unnessary 11 +initialize method. The AccessibilityObjectWrapper has no data members 12 that need to be derefed, so it does not need to be finalized on the main 13 thread. 14 15 * bindings/js/ScriptController.cpp: 16 (WebCore::ScriptController::initializeThreading): Add call to initializeMainThread. 17 * bindings/objc/WebScriptObject.mm: 18 (+[WebScriptObject initialize]): Add call to initializeMainThreadToProcessMainThread. 19 * bindings/v8/ScriptController.cpp: 20 (WebCore::ScriptController::initializeThreading): Add call to initializeMainThread. 21 * platform/mac/SharedBufferMac.mm: 22 (+[WebCoreSharedBufferData initialize]): Add call to initializeMainThreadToProcessMainThread. 23 1 24 2010-04-26 Yongjun Zhang <yongjun_zhang@apple.com> 2 25 -
trunk/WebCore/WebCore.xcodeproj/project.pbxproj
r58236 r58266 12999 12999 isa = PBXGroup; 13000 13000 children = ( 13001 895253DE116C4F0600CABF00 /* FileThreadTask.h */,13002 895253DA116C4EF500CABF00 /* FileStreamProxy.cpp */,13003 895253DB116C4EF500CABF00 /* FileStreamProxy.h */,13004 895253D4116C4C6800CABF00 /* FileStream.cpp */,13005 895253D5116C4C6800CABF00 /* FileStream.h */,13006 895253D6116C4C6800CABF00 /* FileStreamClient.h */,13007 8952535011641B3400CABF00 /* FileThread.cpp */,13008 8952535111641B3400CABF00 /* FileThread.h */,13009 13001 49484FAE102CF01E00187DD3 /* canvas */, 13010 13002 2EAFAF0B10E2AF2D007ED3D6 /* Blob.cpp */, … … 13036 13028 BCDBB8AA0E088CA500C60FF6 /* FileList.h */, 13037 13029 BC1881DC0E08C54300048C13 /* FileList.idl */, 13030 895253D4116C4C6800CABF00 /* FileStream.cpp */, 13031 895253D5116C4C6800CABF00 /* FileStream.h */, 13032 895253D6116C4C6800CABF00 /* FileStreamClient.h */, 13033 895253DA116C4EF500CABF00 /* FileStreamProxy.cpp */, 13034 895253DB116C4EF500CABF00 /* FileStreamProxy.h */, 13035 8952535011641B3400CABF00 /* FileThread.cpp */, 13036 8952535111641B3400CABF00 /* FileThread.h */, 13037 895253DE116C4F0600CABF00 /* FileThreadTask.h */, 13038 13038 A8136D370973A8E700D74463 /* FormDataList.cpp */, 13039 13039 A8136D360973A8E700D74463 /* FormDataList.h */, -
trunk/WebCore/accessibility/mac/AccessibilityObjectWrapper.mm
r58031 r58266 60 60 #import "htmlediting.h" 61 61 #import "visible_units.h" 62 #import <runtime/InitializeThreading.h>63 62 64 63 using namespace WebCore; … … 172 171 173 172 @implementation AccessibilityObjectWrapper 174 175 + (void)initialize176 {177 JSC::initializeThreading();178 #ifndef BUILDING_ON_TIGER179 WebCoreObjCFinalizeOnMainThread(self);180 #endif181 }182 173 183 174 - (id)initWithAccessibilityObject:(AccessibilityObject*)axObject -
trunk/WebCore/bindings/js/ScriptController.cpp
r57738 r58266 44 44 #include <runtime/InitializeThreading.h> 45 45 #include <runtime/JSLock.h> 46 #include <wtf/Threading.h> 46 47 47 48 using namespace JSC; … … 53 54 { 54 55 JSC::initializeThreading(); 56 WTF::initializeMainThread(); 55 57 } 56 58 -
trunk/WebCore/bindings/objc/WebScriptObject.mm
r57738 r58266 50 50 #import <runtime/Completion.h> 51 51 #import <runtime/Completion.h> 52 #import <wtf/Threading.h> 52 53 53 54 #ifdef BUILDING_ON_TIGER … … 110 111 { 111 112 JSC::initializeThreading(); 113 WTF::initializeMainThreadToProcessMainThread(); 112 114 #ifndef BUILDING_ON_TIGER 113 115 WebCoreObjCFinalizeOnMainThread(self); -
trunk/WebCore/bindings/v8/ScriptController.cpp
r57313 r58266 69 69 if (!initializedThreading) { 70 70 WTF::initializeThreading(); 71 WTF::initializeMainThread(); 71 72 initializedThreading = true; 72 73 } -
trunk/WebCore/platform/mac/SharedBufferMac.mm
r40933 r58266 51 51 { 52 52 JSC::initializeThreading(); 53 WTF::initializeMainThreadToProcessMainThread(); 53 54 #ifndef BUILDING_ON_TIGER 54 55 WebCoreObjCFinalizeOnMainThread(self); -
trunk/WebKit/chromium/ChangeLog
r58259 r58266 1 2010-04-25 Sam Weinig <sam@webkit.org> 2 3 Reviewed by Maciej Stachowiak. 4 5 Fix for https://bugs.webkit.org/show_bug.cgi?id=38097 6 Disentangle initializing the main thread from initializing threading 7 8 * src/WebKit.cpp: 9 (WebKit::initialize): Add call to initializeMainThread. 10 * src/WebViewImpl.cpp: 11 (WebKit::WebViewImpl::WebViewImpl): Ditto. 12 1 13 2010-04-26 Roman Gershman <romange@google.com> 2 14 -
trunk/WebKit/chromium/src/WebKit.cpp
r52852 r58266 57 57 58 58 WTF::initializeThreading(); 59 WTF::initializeMainThread(); 59 60 WebCore::AtomicString::init(); 60 61 -
trunk/WebKit/chromium/src/WebViewImpl.cpp
r57927 r58266 251 251 // initialized because CollatorICU requires it. 252 252 WTF::initializeThreading(); 253 WTF::initializeMainThread(); 253 254 254 255 // set to impossible point so we always get the first mouse pos -
trunk/WebKit/efl/ewk/ewk_main.cpp
r55964 r58266 25 25 #include "Logging.h" 26 26 #include "PageCache.h" 27 #include "PageGroup.h"28 27 #include "ewk_private.h" 29 28 #include "runtime/InitializeThreading.h" 29 #include "wtf/Threading.h" 30 30 31 31 #include <Ecore.h> … … 104 104 105 105 JSC::initializeThreading(); 106 WTF::initializeMainThread(); 106 107 WebCore::InitializeLoggingChannelsIfNecessary(); 107 108 -
trunk/WebKit/gtk/ChangeLog
r58111 r58266 1 2010-04-25 Sam Weinig <sam@webkit.org> 2 3 Reviewed by Maciej Stachowiak. 4 5 Fix for https://bugs.webkit.org/show_bug.cgi?id=38097 6 Disentangle initializing the main thread from initializing threading 7 8 * webkit/webkitprivate.cpp: 9 (webkit_init): Add call to initializeMainThread. 10 1 11 2010-04-22 Dave Moore <davemoore@chromium.org> 2 12 -
trunk/WebKit/gtk/webkit/webkitprivate.cpp
r57535 r58266 20 20 21 21 #include "config.h" 22 23 #include "webkitsoupauthdialog.h"24 22 #include "webkitprivate.h" 23 25 24 #include "ApplicationCacheStorage.h" 26 25 #include "Chrome.h" … … 32 31 #include "HitTestResult.h" 33 32 #include "IconDatabase.h" 34 #include <libintl.h>35 33 #include "Logging.h" 36 34 #include "PageCache.h" … … 42 40 #include "ResourceHandleInternal.h" 43 41 #include "ResourceResponse.h" 44 #include <runtime/InitializeThreading.h>45 42 #include "SecurityOrigin.h" 46 #include <stdlib.h>47 43 #include "TextEncodingRegistry.h" 48 44 #include "webkitnetworkresponse.h" 45 #include "webkitsoupauthdialog.h" 46 #include <libintl.h> 47 #include <runtime/InitializeThreading.h> 48 #include <stdlib.h> 49 #include <wtf/Threading.h> 49 50 50 51 #if ENABLE(DATABASE) … … 247 248 248 249 JSC::initializeThreading(); 250 WTF::initializeMainThread(); 251 249 252 WebCore::InitializeLoggingChannelsIfNecessary(); 250 253 -
trunk/WebKit/mac/Carbon/CarbonWindowAdapter.mm
r39028 r58266 75 75 #import <WebCore/WebCoreObjCExtras.h> 76 76 #import <runtime/InitializeThreading.h> 77 #import <wtf/Threading.h> 77 78 78 79 #import "WebKitLogging.h" … … 270 271 { 271 272 JSC::initializeThreading(); 273 WTF::initializeMainThreadToProcessMainThread(); 272 274 #ifndef BUILDING_ON_TIGER 273 275 WebCoreObjCFinalizeOnMainThread(self); -
trunk/WebKit/mac/ChangeLog
r58221 r58266 1 2010-04-25 Sam Weinig <sam@webkit.org> 2 3 Reviewed by Maciej Stachowiak. 4 5 Fix for https://bugs.webkit.org/show_bug.cgi?id=38097 6 Disentangle initializing the main thread from initializing threading 7 8 Calls initializeMainThreadToProcessMainThread since there is no way to ensure 9 that the initialize method will be called on the main thread. 10 11 * Carbon/CarbonWindowAdapter.mm: 12 (+[CarbonWindowAdapter initialize]): Add call to initializeMainThreadToProcessMainThread. 13 * History/WebBackForwardList.mm: 14 (+[WebBackForwardList initialize]): Ditto. 15 * History/WebHistoryItem.mm: 16 (+[WebHistoryItem initialize]): Ditto. 17 * Misc/WebElementDictionary.mm: 18 (+[WebElementDictionary initialize]): Ditto. 19 * Misc/WebIconDatabase.mm: 20 (+[WebIconDatabase initialize]): Ditto. 21 * Plugins/Hosted/WebHostedNetscapePluginView.mm: 22 (+[WebHostedNetscapePluginView initialize]): Ditto. 23 * Plugins/WebBaseNetscapePluginView.mm: 24 (+[WebBaseNetscapePluginView initialize]): Ditto. 25 * Plugins/WebBasePluginPackage.mm: 26 (+[WebBasePluginPackage initialize]): Ditto. 27 * Plugins/WebNetscapePluginView.mm: 28 (+[WebNetscapePluginView initialize]): Ditto. 29 * WebCoreSupport/WebEditorClient.mm: 30 (+[WebEditCommand initialize]): Ditto. 31 * WebCoreSupport/WebFrameLoaderClient.mm: 32 (+[WebFramePolicyListener initialize]): Ditto. 33 * WebView/WebArchive.mm: 34 (+[WebArchivePrivate initialize]): Ditto. 35 * WebView/WebDataSource.mm: 36 (+[WebDataSourcePrivate initialize]): Ditto. 37 * WebView/WebHTMLView.mm: 38 (+[WebHTMLViewPrivate initialize]): Ditto. 39 (+[WebHTMLView initialize]): Ditto. 40 * WebView/WebResource.mm: 41 (+[WebResourcePrivate initialize]): Ditto. 42 * WebView/WebTextIterator.mm: 43 (+[WebTextIteratorPrivate initialize]): Ditto. 44 * WebView/WebView.mm: 45 * WebView/WebViewData.mm: Ditto. 46 (+[WebViewPrivate initialize]): Ditto. 47 1 48 2010-04-24 Dan Bernstein <mitz@apple.com> 2 49 -
trunk/WebKit/mac/History/WebBackForwardList.mm
r42871 r58266 50 50 #import <wtf/RetainPtr.h> 51 51 #import <wtf/StdLibExtras.h> 52 #import <wtf/Threading.h> 52 53 53 54 using namespace WebCore; … … 101 102 { 102 103 JSC::initializeThreading(); 104 WTF::initializeMainThreadToProcessMainThread(); 103 105 #ifndef BUILDING_ON_TIGER 104 106 WebCoreObjCFinalizeOnMainThread(self); -
trunk/WebKit/mac/History/WebHistoryItem.mm
r51630 r58266 54 54 #import <wtf/Assertions.h> 55 55 #import <wtf/StdLibExtras.h> 56 #import <wtf/Threading.h> 56 57 57 58 // Private keys used in the WebHistoryItem's dictionary representation. … … 96 97 { 97 98 JSC::initializeThreading(); 99 WTF::initializeMainThreadToProcessMainThread(); 98 100 #ifndef BUILDING_ON_TIGER 99 101 WebCoreObjCFinalizeOnMainThread(self); -
trunk/WebKit/mac/Misc/WebElementDictionary.mm
r53553 r58266 44 44 #import <WebKit/DOMExtensions.h> 45 45 #import <runtime/InitializeThreading.h> 46 #import <wtf/Threading.h> 46 47 47 48 using namespace WebCore; … … 65 66 { 66 67 JSC::initializeThreading(); 68 WTF::initializeMainThreadToProcessMainThread(); 67 69 #ifndef BUILDING_ON_TIGER 68 70 WebCoreObjCFinalizeOnMainThread(self); -
trunk/WebKit/mac/Misc/WebIconDatabase.mm
r55643 r58266 43 43 #import <WebCore/SharedBuffer.h> 44 44 #import <WebCore/ThreadCheck.h> 45 #import <runtime/InitializeThreading.h> 46 #import <wtf/Threading.h> 45 47 46 48 using namespace WebCore; … … 88 90 89 91 @implementation WebIconDatabase 92 93 + (void)initialize 94 { 95 JSC::initializeThreading(); 96 WTF::initializeMainThreadToProcessMainThread(); 97 } 90 98 91 99 + (WebIconDatabase *)sharedIconDatabase -
trunk/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm
r57095 r58266 47 47 #import <runtime/InitializeThreading.h> 48 48 #import <wtf/Assertions.h> 49 #import <wtf/Threading.h> 49 50 50 51 using namespace WebCore; … … 61 62 { 62 63 JSC::initializeThreading(); 64 WTF::initializeMainThreadToProcessMainThread(); 63 65 #ifndef BUILDING_ON_TIGER 64 66 WebCoreObjCFinalizeOnMainThread(self); -
trunk/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm
r56825 r58266 42 42 #import "WebViewInternal.h" 43 43 44 #import <WebCore/WebCoreObjCExtras.h>45 44 #import <WebCore/AuthenticationMac.h> 46 45 #import <WebCore/BitmapImage.h> … … 57 56 #import <WebCore/RenderView.h> 58 57 #import <WebCore/RenderWidget.h> 58 #import <WebCore/WebCoreObjCExtras.h> 59 59 #import <WebKit/DOMPrivate.h> 60 60 #import <runtime/InitializeThreading.h> 61 61 #import <wtf/Assertions.h> 62 #import <wtf/Threading.h> 62 63 #import <wtf/text/CString.h> 63 64 … … 116 117 { 117 118 JSC::initializeThreading(); 119 WTF::initializeMainThreadToProcessMainThread(); 118 120 #ifndef BUILDING_ON_TIGER 119 121 WebCoreObjCFinalizeOnMainThread(self); -
trunk/WebKit/mac/Plugins/WebBasePluginPackage.mm
r41376 r58266 29 29 #import <WebKit/WebBasePluginPackage.h> 30 30 31 #import <WebCore/WebCoreObjCExtras.h> 31 32 #import <WebKit/WebKitNSStringExtras.h> 33 #import <WebKit/WebNSObjectExtras.h> 32 34 #import <WebKit/WebNetscapePluginPackage.h> 33 #import <WebKit/WebNSObjectExtras.h>34 35 #import <WebKit/WebPluginPackage.h> 35 #import <WebCore/WebCoreObjCExtras.h>36 36 #import <runtime/InitializeThreading.h> 37 37 #import <wtf/Assertions.h> 38 #import <wtf/Threading.h> 38 39 #import <wtf/Vector.h> 39 40 … … 64 65 { 65 66 JSC::initializeThreading(); 67 WTF::initializeMainThreadToProcessMainThread(); 66 68 #ifndef BUILDING_ON_TIGER 67 69 WebCoreObjCFinalizeOnMainThread(self); -
trunk/WebKit/mac/Plugins/WebNetscapePluginView.mm
r58202 r58266 31 31 #import "WebNetscapePluginView.h" 32 32 33 #import "WebBaseNetscapePluginStream.h" 33 34 #import "WebDataSourceInternal.h" 34 35 #import "WebDefaultUIDelegate.h" … … 37 38 #import "WebKitErrorsPrivate.h" 38 39 #import "WebKitLogging.h" 39 #import "WebNetscapeContainerCheckPrivate.h"40 40 #import "WebKitNSStringExtras.h" 41 41 #import "WebKitSystemInterface.h" … … 46 46 #import "WebNSURLRequestExtras.h" 47 47 #import "WebNSViewExtras.h" 48 #import "WebNetscapeContainerCheckContextInfo.h" 49 #import "WebNetscapeContainerCheckPrivate.h" 50 #import "WebNetscapePluginEventHandler.h" 48 51 #import "WebNetscapePluginPackage.h" 49 #import "WebBaseNetscapePluginStream.h"50 52 #import "WebPluginContainerCheck.h" 51 #import "WebNetscapeContainerCheckContextInfo.h" 52 #import "WebNetscapePluginEventHandler.h" 53 #import "WebPluginRequest.h" 53 54 #import "WebPreferences.h" 54 #import "Web PluginRequest.h"55 #import "WebUIDelegatePrivate.h" 55 56 #import "WebViewInternal.h" 56 #import "WebUIDelegatePrivate.h"57 57 #import <Carbon/Carbon.h> 58 #import <runtime/JSLock.h>59 #import <WebCore/npruntime_impl.h>60 58 #import <WebCore/CookieJar.h> 61 59 #import <WebCore/DocumentLoader.h> … … 72 70 #import <WebCore/WebCoreObjCExtras.h> 73 71 #import <WebCore/WebCoreURLResponse.h> 72 #import <WebCore/npruntime_impl.h> 74 73 #import <WebKit/DOMPrivate.h> 75 74 #import <WebKit/WebUIDelegate.h> 75 #import <objc/objc-runtime.h> 76 76 #import <runtime/InitializeThreading.h> 77 #import <runtime/JSLock.h> 77 78 #import <wtf/Assertions.h> 79 #import <wtf/Threading.h> 78 80 #import <wtf/text/CString.h> 79 #import <objc/objc-runtime.h>80 81 81 82 #define LoginWindowDidSwitchFromUserNotification @"WebLoginWindowDidSwitchFromUserNotification" … … 189 190 { 190 191 JSC::initializeThreading(); 192 WTF::initializeMainThreadToProcessMainThread(); 191 193 #ifndef BUILDING_ON_TIGER 192 194 WebCoreObjCFinalizeOnMainThread(self); -
trunk/WebKit/mac/WebCoreSupport/WebEditorClient.mm
r49806 r58266 63 63 #import <runtime/InitializeThreading.h> 64 64 #import <wtf/PassRefPtr.h> 65 #import <wtf/Threading.h> 65 66 66 67 using namespace WebCore; … … 95 96 { 96 97 JSC::initializeThreading(); 98 WTF::initializeMainThreadToProcessMainThread(); 97 99 #ifndef BUILDING_ON_TIGER 98 100 WebCoreObjCFinalizeOnMainThread(self); -
trunk/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm
r58120 r58266 51 51 #import "WebHTMLRepresentationPrivate.h" 52 52 #import "WebHTMLViewInternal.h" 53 #import "WebHistoryInternal.h" 53 54 #import "WebHistoryItemInternal.h" 54 #import "WebHistoryInternal.h"55 55 #import "WebIconDatabaseInternal.h" 56 56 #import "WebKitErrorsPrivate.h" 57 57 #import "WebKitLogging.h" 58 58 #import "WebKitNSStringExtras.h" 59 #import "WebNSURLExtras.h" 59 60 #import "WebNavigationData.h" 60 #import "WebN SURLExtras.h"61 #import "WebNetscapePluginPackage.h" 61 62 #import "WebNetscapePluginView.h" 62 #import "WebNetscapePluginPackage.h"63 63 #import "WebPanelAuthenticationHandler.h" 64 64 #import "WebPluginController.h" … … 74 74 #import "WebUIDelegatePrivate.h" 75 75 #import "WebViewInternal.h" 76 #import <WebKitSystemInterface.h>77 76 #import <WebCore/AuthenticationMac.h> 78 77 #import <WebCore/BlockExceptions.h> … … 90 89 #import <WebCore/FrameView.h> 91 90 #import <WebCore/HTMLAppletElement.h> 92 #import <WebCore/HTMLHeadElement.h>93 91 #import <WebCore/HTMLFormElement.h> 94 92 #import <WebCore/HTMLFrameElement.h> 95 93 #import <WebCore/HTMLFrameOwnerElement.h> 94 #import <WebCore/HTMLHeadElement.h> 96 95 #import <WebCore/HTMLNames.h> 97 96 #import <WebCore/HTMLPlugInElement.h> … … 116 115 #import <WebKit/DOMElement.h> 117 116 #import <WebKit/DOMHTMLFormElement.h> 117 #import <WebKitSystemInterface.h> 118 118 #import <runtime/InitializeThreading.h> 119 119 #import <wtf/PassRefPtr.h> 120 #import <wtf/Threading.h> 120 121 121 122 #if ENABLE(MAC_JAVA_BRIDGE) … … 1793 1794 { 1794 1795 JSC::initializeThreading(); 1796 WTF::initializeMainThreadToProcessMainThread(); 1795 1797 #ifndef BUILDING_ON_TIGER 1796 1798 WebCoreObjCFinalizeOnMainThread(self); -
trunk/WebKit/mac/WebView/WebArchive.mm
r55529 r58266 39 39 #import <WebCore/ThreadCheck.h> 40 40 #import <WebCore/WebCoreObjCExtras.h> 41 #import <wtf/Threading.h> 41 42 42 43 using namespace WebCore; … … 67 68 { 68 69 JSC::initializeThreading(); 70 WTF::initializeMainThreadToProcessMainThread(); 69 71 #ifndef BUILDING_ON_TIGER 70 72 WebCoreObjCFinalizeOnMainThread(self); -
trunk/WebKit/mac/WebView/WebDataSource.mm
r54908 r58266 61 61 #import <runtime/InitializeThreading.h> 62 62 #import <wtf/Assertions.h> 63 #import <wtf/Threading.h> 63 64 64 65 using namespace WebCore; … … 80 81 { 81 82 JSC::initializeThreading(); 83 WTF::initializeMainThreadToProcessMainThread(); 82 84 #ifndef BUILDING_ON_TIGER 83 85 WebCoreObjCFinalizeOnMainThread(self); -
trunk/WebKit/mac/WebView/WebHTMLView.mm
r57723 r58266 119 119 #import <limits> 120 120 #import <runtime/InitializeThreading.h> 121 #import <wtf/Threading.h> 121 122 122 123 #if USE(ACCELERATED_COMPOSITING) … … 491 492 { 492 493 JSC::initializeThreading(); 494 WTF::initializeMainThreadToProcessMainThread(); 493 495 #ifndef BUILDING_ON_TIGER 494 496 WebCoreObjCFinalizeOnMainThread(self); … … 2318 2320 returnTypes:[[self class] _insertablePasteboardTypes]]; 2319 2321 JSC::initializeThreading(); 2322 WTF::initializeMainThreadToProcessMainThread(); 2320 2323 #ifndef BUILDING_ON_TIGER 2321 2324 WebCoreObjCFinalizeOnMainThread(self); -
trunk/WebKit/mac/WebView/WebResource.mm
r45274 r58266 44 44 #import <WebCore/WebCoreObjCExtras.h> 45 45 #import <WebCore/WebCoreURLResponse.h> 46 #import <wtf/Threading.h> 46 47 47 48 using namespace WebCore; … … 66 67 { 67 68 JSC::initializeThreading(); 69 WTF::initializeMainThreadToProcessMainThread(); 68 70 #ifndef BUILDING_ON_TIGER 69 71 WebCoreObjCFinalizeOnMainThread(self); -
trunk/WebKit/mac/WebView/WebTextIterator.mm
r58156 r58266 33 33 #import <WebCore/WebCoreObjCExtras.h> 34 34 #import <runtime/InitializeThreading.h> 35 #import <wtf/Threading.h> 35 36 36 37 using namespace JSC; … … 48 49 { 49 50 JSC::initializeThreading(); 51 WTF::initializeMainThreadToProcessMainThread(); 50 52 #ifndef BUILDING_ON_TIGER 51 53 WebCoreObjCFinalizeOnMainThread(self); -
trunk/WebKit/mac/WebView/WebView.mm
r58221 r58266 159 159 #import <runtime/ArrayPrototype.h> 160 160 #import <runtime/DateInstance.h> 161 #import <runtime/InitializeThreading.h>162 161 #import <runtime/JSLock.h> 163 162 #import <runtime/JSValue.h> -
trunk/WebKit/mac/WebView/WebViewData.mm
r57183 r58266 35 35 #import <objc/objc-auto.h> 36 36 #import <runtime/InitializeThreading.h> 37 #import <wtf/Threading.h> 37 38 38 39 BOOL applicationIsTerminating = NO; … … 44 45 { 45 46 JSC::initializeThreading(); 47 WTF::initializeMainThreadToProcessMainThread(); 46 48 #ifndef BUILDING_ON_TIGER 47 49 WebCoreObjCFinalizeOnMainThread(self); -
trunk/WebKit/qt/Api/qwebpage.cpp
r58218 r58266 84 84 #include "PageClientQt.h" 85 85 #include "WorkerThread.h" 86 #include "wtf/Threading.h" 86 87 87 88 #include <QApplication> … … 274 275 WebCore::InitializeLoggingChannelsIfNecessary(); 275 276 JSC::initializeThreading(); 277 WTF::initializeMainThread(); 276 278 WebCore::SecurityOrigin::setLocalLoadPolicy(WebCore::SecurityOrigin::AllowLocalLoadsForLocalAndSubstituteData); 277 279 -
trunk/WebKit/qt/ChangeLog
r58255 r58266 1 2010-04-25 Sam Weinig <sam@webkit.org> 2 3 Reviewed by Maciej Stachowiak. 4 5 Fix for https://bugs.webkit.org/show_bug.cgi?id=38097 6 Disentangle initializing the main thread from initializing threading 7 8 * Api/qwebpage.cpp: 9 (QWebPagePrivate::QWebPagePrivate): Add call to initializeMainThread. 10 1 11 2010-04-26 Thiago Macieira <thiago.macieira@nokia.com> 2 12 -
trunk/WebKit/win/ChangeLog
r58227 r58266 1 2010-04-25 Sam Weinig <sam@webkit.org> 2 3 Reviewed by Maciej Stachowiak. 4 5 Fix for https://bugs.webkit.org/show_bug.cgi?id=38097 6 Disentangle initializing the main thread from initializing threading 7 8 * WebKitClassFactory.cpp: 9 (WebKitClassFactory::WebKitClassFactory): Add call to initializeMainThread. 10 * WebView.cpp: 11 (WebView::WebView): Ditto. 12 1 13 2010-04-25 Yury Semikhatsky <yurys@chromium.org> 2 14 -
trunk/WebKit/win/WebKitClassFactory.cpp
r57730 r58266 58 58 #include "WebView.h" 59 59 #include "WebWorkersPrivate.h" 60 #pragma warning(push, 0)61 60 #include <JavaScriptCore/InitializeThreading.h> 62 61 #include <WebCore/SoftLinking.h> 63 # pragma warning(pop)62 #include <wtf/Threading.h> 64 63 65 64 // WebKitClassFactory --------------------------------------------------------- … … 88 87 89 88 JSC::initializeThreading(); 89 WTF::initializeMainThread(); 90 90 91 91 gClassCount++; -
trunk/WebKit/win/WebView.cpp
r58072 r58266 124 124 #include <WebCore/TypingCommand.h> 125 125 #include <WebCore/WindowMessageBroadcaster.h> 126 #include <wtf/Threading.h> 126 127 127 128 #if ENABLE(CLIENT_BASED_GEOLOCATION) … … 343 344 { 344 345 JSC::initializeThreading(); 346 WTF::initializeMainThread(); 345 347 346 348 m_backingStoreSize.cx = m_backingStoreSize.cy = 0; -
trunk/WebKit/wx/ChangeLog
r58231 r58266 1 2010-04-25 Sam Weinig <sam@webkit.org> 2 3 Reviewed by Maciej Stachowiak. 4 5 Fix for https://bugs.webkit.org/show_bug.cgi?id=38097 6 Disentangle initializing the main thread from initializing threading 7 8 * WebView.cpp: 9 (wxWebView::Create): Add call to initializeMainThread. 10 1 11 2010-04-25 Kevin Watters <kevinwatters@gmail.com> 2 12 -
trunk/WebKit/wx/WebView.cpp
r58231 r58266 303 303 304 304 WTF::initializeThreading(); 305 WTF::initializeMainThread(); 305 306 306 307 // This is necessary because we are using SharedTimerWin.cpp on Windows, -
trunk/WebKit2/ChangeLog
r58199 r58266 1 2010-04-25 Sam Weinig <sam@webkit.org> 2 3 Reviewed by Maciej Stachowiak. 4 5 Fix for https://bugs.webkit.org/show_bug.cgi?id=38097 6 Disentangle initializing the main thread from initializing threading 7 8 * UIProcess/Launcher/mac/WebProcessLauncher.mm: 9 (WebKit::webThreadBody): Add call to initializeMainThread. 10 * UIProcess/Launcher/win/WebProcessLauncher.cpp: 11 (WebKit::webThreadBody): Ditto. 12 * WebProcess/Launching/mac/WebProcessMain.mm: 13 (main): Ditto. 14 * WebProcess/win/WebProcessMain.cpp: 15 (WebKit::WebProcessMain): Ditto. 16 1 17 2010-04-23 Sam Weinig <sam@webkit.org> 2 18 -
trunk/WebKit2/UIProcess/Launcher/mac/WebProcessLauncher.mm
r57732 r58266 49 49 InitWebCoreSystemInterface(); 50 50 JSC::initializeThreading(); 51 WTF::initializeMainThread(); 51 52 52 53 WebProcess::shared().initialize(serverPort, RunLoop::current()); -
trunk/WebKit2/UIProcess/Launcher/win/WebProcessLauncher.cpp
r57739 r58266 46 46 // Initialization 47 47 JSC::initializeThreading(); 48 WTF::initializeMainThread(); 48 49 49 50 WebProcess::shared().initialize(serverName, RunLoop::current()); -
trunk/WebKit2/WebProcess/Launching/mac/WebProcessMain.mm
r57732 r58266 31 31 #import <signal.h> 32 32 #import <unistd.h> 33 #import <wtf/Threading.h> 33 34 34 35 // FIXME: We should be doing this another way. … … 60 61 InitWebCoreSystemInterface(); 61 62 JSC::initializeThreading(); 63 WTF::initializeMainThread(); 62 64 RunLoop::initializeMainRunLoop(); 63 65 64 66 // Create the connection. 65 67 WebProcess::shared().initialize(serverPort, RunLoop::main()); -
trunk/WebKit2/WebProcess/win/WebProcessMain.cpp
r57739 r58266 29 29 #include "WebProcess.h" 30 30 #include <runtime/InitializeThreading.h> 31 #import <wtf/Threading.h> 31 32 32 33 namespace WebKit { … … 37 38 38 39 JSC::initializeThreading(); 40 WTF::initializeMainThread(); 39 41 RunLoop::initializeMainRunLoop(); 40 42
Note: See TracChangeset
for help on using the changeset viewer.