Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(20)

Side by Side Diff: third_party/WebKit/Source/wtf/ThreadingPthreads.cpp

Issue 2655853003: Replace StringImpl::empty{16Bit}() with a static member (Closed)
Patch Set: annotate race Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2007, 2009 Apple Inc. All rights reserved. 2 * Copyright (C) 2007, 2009 Apple Inc. All rights reserved.
3 * Copyright (C) 2007 Justin Haygood (jhaygood@reaktix.com) 3 * Copyright (C) 2007 Justin Haygood (jhaygood@reaktix.com)
4 * Copyright (C) 2011 Research In Motion Limited. All rights reserved. 4 * Copyright (C) 2011 Research In Motion Limited. All rights reserved.
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 9 *
10 * 1. Redistributions of source code must retain the above copyright 10 * 1. Redistributions of source code must retain the above copyright
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 } 74 }
75 75
76 } // namespace internal 76 } // namespace internal
77 77
78 static Mutex* atomicallyInitializedStaticMutex; 78 static Mutex* atomicallyInitializedStaticMutex;
79 79
80 void initializeThreading() { 80 void initializeThreading() {
81 // This should only be called once. 81 // This should only be called once.
82 DCHECK(!atomicallyInitializedStaticMutex); 82 DCHECK(!atomicallyInitializedStaticMutex);
83 83
84 // StringImpl::empty() does not construct its static string in a threadsafe
85 // fashion, so ensure it has been initialized from here.
86 StringImpl::empty();
87 StringImpl::empty16Bit();
88 atomicallyInitializedStaticMutex = new Mutex; 84 atomicallyInitializedStaticMutex = new Mutex;
89 wtfThreadData(); 85 wtfThreadData();
90 initializeDates(); 86 initializeDates();
91 // Force initialization of static DoubleToStringConverter converter variable 87 // Force initialization of static DoubleToStringConverter converter variable
92 // inside EcmaScriptConverter function while we are in single thread mode. 88 // inside EcmaScriptConverter function while we are in single thread mode.
93 double_conversion::DoubleToStringConverter::EcmaScriptConverter(); 89 double_conversion::DoubleToStringConverter::EcmaScriptConverter();
94 } 90 }
95 91
96 void lockAtomicallyInitializedStaticMutex() { 92 void lockAtomicallyInitializedStaticMutex() {
97 DCHECK(atomicallyInitializedStaticMutex); 93 DCHECK(atomicallyInitializedStaticMutex);
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 } 242 }
247 243
248 void willCreateThread() { 244 void willCreateThread() {
249 s_threadCreated = true; 245 s_threadCreated = true;
250 } 246 }
251 #endif 247 #endif
252 248
253 } // namespace WTF 249 } // namespace WTF
254 250
255 #endif // OS(POSIX) 251 #endif // OS(POSIX)
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/platform/weborigin/KURL.cpp ('k') | third_party/WebKit/Source/wtf/ThreadingWin.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698