Ignore:
Timestamp:
May 2, 2008, 3:29:47 AM (17 years ago)
Author:
[email protected]
Message:

Reviewed by Darin.

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.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/wtf/Threading.h

    r31971 r32808  
    240240};
    241241
     242// This function must be called from the main thread. It is safe to call it repeatedly.
     243// 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.
    242244void initializeThreading();
    243245
Note: See TracChangeset for help on using the changeset viewer.