Index: Source/wtf/Partitions.cpp |
diff --git a/Source/wtf/Partitions.cpp b/Source/wtf/Partitions.cpp |
index 8ad9931e127445ccdaa81da22289d7688721d64d..d30fcf207d0c9b0aad8e48cd5200f4b1932d48df 100644 |
--- a/Source/wtf/Partitions.cpp |
+++ b/Source/wtf/Partitions.cpp |
@@ -37,7 +37,8 @@ |
namespace WTF { |
-bool Partitions::s_initialized; |
+int Partitions::s_lock = 0; |
+bool Partitions::s_initialized = false; |
PartitionAllocatorGeneric Partitions::m_fastMallocAllocator; |
PartitionAllocatorGeneric Partitions::m_bufferAllocator; |
@@ -47,6 +48,8 @@ HistogramEnumerationFunction Partitions::m_histogramEnumeration = nullptr; |
void Partitions::initialize() |
{ |
+ spinLockLock(&s_lock); |
+ |
if (!s_initialized) { |
m_fastMallocAllocator.init(); |
m_bufferAllocator.init(); |
@@ -54,6 +57,8 @@ void Partitions::initialize() |
m_layoutAllocator.init(); |
s_initialized = true; |
} |
+ |
+ spinLockUnlock(&s_lock); |
} |
void Partitions::setHistogramEnumeration(HistogramEnumerationFunction histogramEnumeration) |