Skip to content
  • ap@webkit.org's avatar
    Reviewed by Darin. · 3d4a5419
    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