OLD | NEW |
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 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 #endif | 58 #endif |
59 | 59 |
60 namespace WTF { | 60 namespace WTF { |
61 | 61 |
62 static Mutex* atomicallyInitializedStaticMutex; | 62 static Mutex* atomicallyInitializedStaticMutex; |
63 | 63 |
64 void initializeThreading() { | 64 void initializeThreading() { |
65 // This should only be called once. | 65 // This should only be called once. |
66 ASSERT(!atomicallyInitializedStaticMutex); | 66 ASSERT(!atomicallyInitializedStaticMutex); |
67 | 67 |
68 // StringImpl::empty() does not construct its static string in a threadsafe fa
shion, | 68 // StringImpl::empty() does not construct its static string in a threadsafe |
69 // so ensure it has been initialized from here. | 69 // fashion, so ensure it has been initialized from here. |
70 StringImpl::empty(); | 70 StringImpl::empty(); |
71 StringImpl::empty16Bit(); | 71 StringImpl::empty16Bit(); |
72 atomicallyInitializedStaticMutex = new Mutex; | 72 atomicallyInitializedStaticMutex = new Mutex; |
73 wtfThreadData(); | 73 wtfThreadData(); |
74 initializeDates(); | 74 initializeDates(); |
75 // Force initialization of static DoubleToStringConverter converter variable | 75 // Force initialization of static DoubleToStringConverter converter variable |
76 // inside EcmaScriptConverter function while we are in single thread mode. | 76 // inside EcmaScriptConverter function while we are in single thread mode. |
77 double_conversion::DoubleToStringConverter::EcmaScriptConverter(); | 77 double_conversion::DoubleToStringConverter::EcmaScriptConverter(); |
78 } | 78 } |
79 | 79 |
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
238 } | 238 } |
239 | 239 |
240 void willCreateThread() { | 240 void willCreateThread() { |
241 s_threadCreated = true; | 241 s_threadCreated = true; |
242 } | 242 } |
243 #endif | 243 #endif |
244 | 244 |
245 } // namespace WTF | 245 } // namespace WTF |
246 | 246 |
247 #endif // OS(POSIX) | 247 #endif // OS(POSIX) |
OLD | NEW |