Changeset 161852 in webkit


Ignore:
Timestamp:
Jan 12, 2014 6:36:50 PM (10 years ago)
Author:
andersca@apple.com
Message:

Remove AtomicallyInitializedStatic
https://bugs.webkit.org/show_bug.cgi?id=126864

Reviewed by Darin Adler.

  • wtf/Threading.h:
  • wtf/ThreadingPthreads.cpp:

(WTF::initializeThreading):

  • wtf/ThreadingWin.cpp:

(WTF::initializeThreading):

Location:
trunk/Source/WTF
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WTF/ChangeLog

    r161851 r161852  
     12014-01-12  Anders Carlsson  <andersca@apple.com>
     2
     3        Remove AtomicallyInitializedStatic
     4        https://bugs.webkit.org/show_bug.cgi?id=126864
     5
     6        Reviewed by Darin Adler.
     7
     8        * wtf/Threading.h:
     9        * wtf/ThreadingPthreads.cpp:
     10        (WTF::initializeThreading):
     11        * wtf/ThreadingWin.cpp:
     12        (WTF::initializeThreading):
     13
    1142014-01-12  Darin Adler  <darin@apple.com>
    215
  • trunk/Source/WTF/wtf/Threading.h

    r161164 r161852  
    7070#include <wtf/ThreadingPrimitives.h>
    7171
    72 // For portability, we do not use thread-safe statics natively supported by some compilers (e.g. gcc).
    73 #define AtomicallyInitializedStatic(T, name) \
    74     WTF::lockAtomicallyInitializedStaticMutex(); \
    75     static T name; \
    76     WTF::unlockAtomicallyInitializedStaticMutex();
    77 
    7872namespace WTF {
    7973
     
    10195WTF_EXPORT_PRIVATE void detachThread(ThreadIdentifier);
    10296
    103 WTF_EXPORT_PRIVATE void lockAtomicallyInitializedStaticMutex();
    104 WTF_EXPORT_PRIVATE void unlockAtomicallyInitializedStaticMutex();
    105 
    10697} // namespace WTF
    10798
  • trunk/Source/WTF/wtf/ThreadingPthreads.cpp

    r161601 r161852  
    9999typedef HashMap<ThreadIdentifier, std::unique_ptr<PthreadState>> ThreadMap;
    100100
    101 static Mutex* atomicallyInitializedStaticMutex;
    102 
    103101void unsafeThreadWasDetached(ThreadIdentifier);
    104102void threadDidExit(ThreadIdentifier);
     
    113111void initializeThreading()
    114112{
    115     if (atomicallyInitializedStaticMutex)
     113    static bool isInitialized;
     114
     115    if (isInitialized)
    116116        return;
    117117
     
    120120    // so ensure it has been initialized from here.
    121121    StringImpl::empty();
    122     atomicallyInitializedStaticMutex = new Mutex;
     122
    123123    threadMapMutex();
    124124    initializeRandomNumberGenerator();
     
    130130}
    131131
    132 void lockAtomicallyInitializedStaticMutex()
    133 {
    134     ASSERT(atomicallyInitializedStaticMutex);
    135     atomicallyInitializedStaticMutex->lock();
    136 }
    137 
    138 void unlockAtomicallyInitializedStaticMutex()
    139 {
    140     atomicallyInitializedStaticMutex->unlock();
    141 }
    142 
    143132static ThreadMap& threadMap()
    144133{
  • trunk/Source/WTF/wtf/ThreadingWin.cpp

    r161164 r161852  
    149149}
    150150
    151 static Mutex* atomicallyInitializedStaticMutex;
    152 
    153 void lockAtomicallyInitializedStaticMutex()
    154 {
    155     ASSERT(atomicallyInitializedStaticMutex);
    156     atomicallyInitializedStaticMutex->lock();
    157 }
    158 
    159 void unlockAtomicallyInitializedStaticMutex()
    160 {
    161     atomicallyInitializedStaticMutex->unlock();
    162 }
    163 
    164151static Mutex& threadMapMutex()
    165152{
     
    170157void initializeThreading()
    171158{
    172     if (atomicallyInitializedStaticMutex)
     159    static bool isInitialized;
     160   
     161    if (isInitialized)
    173162        return;
    174163
     
    177166    // so ensure it has been initialized from here.
    178167    StringImpl::empty();
    179     atomicallyInitializedStaticMutex = new Mutex;
    180168    threadMapMutex();
    181169    initializeRandomNumberGenerator();
     
    183171    s_dtoaP5Mutex = new Mutex;
    184172    initializeDates();
     173   
     174    isInitialized = true;
    185175}
    186176
Note: See TracChangeset for help on using the changeset viewer.