Changeset 161869 in webkit
- Timestamp:
- Jan 13, 2014 2:12:03 AM (10 years ago)
- Location:
- trunk/Source/WTF
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WTF/ChangeLog
r161861 r161869 1 2014-01-13 Commit Queue <commit-queue@webkit.org> 2 3 Unreviewed, rolling out r161852. 4 http://trac.webkit.org/changeset/161852 5 https://bugs.webkit.org/show_bug.cgi?id=126877 6 7 Broke ToT with system Safari (Requested by kling on #webkit). 8 9 * wtf/Threading.h: 10 * wtf/ThreadingPthreads.cpp: 11 (WTF::initializeThreading): 12 (WTF::lockAtomicallyInitializedStaticMutex): 13 (WTF::unlockAtomicallyInitializedStaticMutex): 14 * wtf/ThreadingWin.cpp: 15 (WTF::lockAtomicallyInitializedStaticMutex): 16 (WTF::unlockAtomicallyInitializedStaticMutex): 17 (WTF::initializeThreading): 18 1 19 2014-01-12 Commit Queue <commit-queue@webkit.org> 2 20 -
trunk/Source/WTF/wtf/Threading.h
r161852 r161869 70 70 #include <wtf/ThreadingPrimitives.h> 71 71 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 72 78 namespace WTF { 73 79 … … 95 101 WTF_EXPORT_PRIVATE void detachThread(ThreadIdentifier); 96 102 103 WTF_EXPORT_PRIVATE void lockAtomicallyInitializedStaticMutex(); 104 WTF_EXPORT_PRIVATE void unlockAtomicallyInitializedStaticMutex(); 105 97 106 } // namespace WTF 98 107 -
trunk/Source/WTF/wtf/ThreadingPthreads.cpp
r161855 r161869 99 99 typedef HashMap<ThreadIdentifier, std::unique_ptr<PthreadState>> ThreadMap; 100 100 101 static Mutex* atomicallyInitializedStaticMutex; 102 101 103 void unsafeThreadWasDetached(ThreadIdentifier); 102 104 void threadDidExit(ThreadIdentifier); … … 111 113 void initializeThreading() 112 114 { 113 static bool isInitialized; 114 115 if (isInitialized) 115 if (atomicallyInitializedStaticMutex) 116 116 return; 117 117 … … 122 122 // so ensure it has been initialized from here. 123 123 StringImpl::empty(); 124 124 atomicallyInitializedStaticMutex = new Mutex; 125 125 threadMapMutex(); 126 126 initializeRandomNumberGenerator(); … … 132 132 } 133 133 134 void lockAtomicallyInitializedStaticMutex() 135 { 136 ASSERT(atomicallyInitializedStaticMutex); 137 atomicallyInitializedStaticMutex->lock(); 138 } 139 140 void unlockAtomicallyInitializedStaticMutex() 141 { 142 atomicallyInitializedStaticMutex->unlock(); 143 } 144 134 145 static ThreadMap& threadMap() 135 146 { -
trunk/Source/WTF/wtf/ThreadingWin.cpp
r161852 r161869 149 149 } 150 150 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 151 164 static Mutex& threadMapMutex() 152 165 { … … 157 170 void initializeThreading() 158 171 { 159 static bool isInitialized; 160 161 if (isInitialized) 172 if (atomicallyInitializedStaticMutex) 162 173 return; 163 174 … … 166 177 // so ensure it has been initialized from here. 167 178 StringImpl::empty(); 179 atomicallyInitializedStaticMutex = new Mutex; 168 180 threadMapMutex(); 169 181 initializeRandomNumberGenerator(); … … 171 183 s_dtoaP5Mutex = new Mutex; 172 184 initializeDates(); 173 174 isInitialized = true;175 185 } 176 186
Note: See TracChangeset
for help on using the changeset viewer.