-
ap@webkit.org authored
Make JavaScriptGlue and JavaScriptCore API functions implicitly call initializeThreading for the sake of non-WebKit clients. JavaScriptCore: * API/JSBase.cpp: (JSGarbageCollect): * API/JSContextRef.cpp: (JSGlobalContextCreate): These are the JavaScriptCore API bottlenecks. There are a few other JSStringRef and JSClassRef functions that can be called earlier, but they do not do anything that requires initializeThreading. * kjs/InitializeThreading.cpp: (KJS::doInitializeThreading): (KJS::initializeThreading): On Darwin, make the initialization happen under pthread_once, since there is no guarantee that non-WebKit clients won't try to call this function re-entrantly. * kjs/InitializeThreading.h: * wtf/Threading.h: Spell out initializeThreading contract. * wtf/ThreadingPthreads.cpp: (WTF::isMainThread): Make sure that results are correct on Darwin, even if threading was initialized from a secondary thread. JavaScriptGlue: * JavaScriptGlue.cpp: (JSRunCreate): (JSCollect): (JSCreateJSArrayFromCFArray): (JSLockInterpreter): These are all possible JavaScriptGlue entry points. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@32808 268f45cc-cd09-0410-ab3c-d52691b4dbfc
3d4a5419