Ignore:
Timestamp:
Apr 16, 2008, 2:30:01 AM (17 years ago)
Author:
[email protected]
Message:

Reviewed by Darin.

Implement an abstraction for thread-specific storage, use it to get rid of some static objects.

SunSpider results were not conclusive, possibly up to 0.2% slowdown.

  • wtf/ThreadSpecific.h: Added. (WTF::::ThreadSpecific): (WTF::::~ThreadSpecific): (WTF::::get): (WTF::::set): (WTF::::destroy): (WTF::T): (WTF::::operator): Only implemented for platforms that use pthreads.
  • kjs/CommonIdentifiers.cpp: (KJS::CommonIdentifiers::shared):
  • kjs/CommonIdentifiers.h:
  • kjs/InitializeThreading.cpp: (KJS::initializeThreading):
  • kjs/Parser.cpp: (KJS::parser):
  • kjs/Parser.h:
  • kjs/identifier.cpp: (KJS::identifierTable): (KJS::literalIdentifierTable): (KJS::Identifier::initializeIdentifierThreading):
  • kjs/identifier.h:
  • kjs/lexer.cpp: (KJS::lexer):
  • kjs/lexer.h: Make static instances per-thread.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/kjs/InitializeThreading.cpp

    r31813 r31936  
    3232#include "DateMath.h"
    3333#include "dtoa.h"
     34#include "identifier.h"
     35#include "lexer.h"
     36#include "Parser.h"
    3437#include "ustring.h"
    3538#include <wtf/Threading.h>
     
    4447        s_dtoaP5Mutex = new Mutex;
    4548        UString::null();
     49        Identifier::initializeIdentifierThreading();
     50        CommonIdentifiers::shared();
     51        lexer();
    4652        initDateMath();
    4753    }
Note: See TracChangeset for help on using the changeset viewer.