Modified: trunk/Source/_javascript_Core/ChangeLog (95511 => 95512)
--- trunk/Source/_javascript_Core/ChangeLog 2011-09-20 03:55:29 UTC (rev 95511)
+++ trunk/Source/_javascript_Core/ChangeLog 2011-09-20 04:05:28 UTC (rev 95512)
@@ -1,5 +1,29 @@
2011-09-19 Geoffrey Garen <[email protected]>
+ Removed ENABLE_LAZY_BLOCK_FREEING and related #ifdefs
+ https://bugs.webkit.org/show_bug.cgi?id=68424
+
+ As discussed on webkit-dev. All ports build with threads enabled in JSC now.
+
+ This may break WinCE and other ports that have not built and tested with
+ this configuration. I've filed bugs for port maintainers. It's time for
+ WebKit to move forward.
+
+ Reviewed by Mark Rowe.
+
+ * heap/Heap.cpp:
+ (JSC::Heap::Heap):
+ (JSC::Heap::~Heap):
+ (JSC::Heap::destroy):
+ (JSC::Heap::blockFreeingThreadMain):
+ (JSC::Heap::allocateBlock):
+ (JSC::Heap::freeBlocks):
+ (JSC::Heap::releaseFreeBlocks):
+ * heap/Heap.h:
+ * wtf/Platform.h:
+
+2011-09-19 Geoffrey Garen <[email protected]>
+
Removed ENABLE_WTF_MULTIPLE_THREADS and related #ifdefs
https://bugs.webkit.org/show_bug.cgi?id=68423
Modified: trunk/Source/_javascript_Core/heap/Heap.cpp (95511 => 95512)
--- trunk/Source/_javascript_Core/heap/Heap.cpp 2011-09-20 03:55:29 UTC (rev 95511)
+++ trunk/Source/_javascript_Core/heap/Heap.cpp 2011-09-20 04:05:28 UTC (rev 95512)
@@ -261,16 +261,13 @@
{
m_markedSpace.setHighWaterMark(m_minBytesPerCycle);
(*m_activityCallback)();
-#if ENABLE(LAZY_BLOCK_FREEING)
m_numberOfFreeBlocks = 0;
m_blockFreeingThread = createThread(blockFreeingThreadStartFunc, this, "_javascript_Core::BlockFree");
ASSERT(m_blockFreeingThread);
-#endif
}
Heap::~Heap()
{
-#if ENABLE(LAZY_BLOCK_FREEING)
// destroy our thread
{
MutexLocker locker(m_freeBlockLock);
@@ -278,7 +275,6 @@
m_freeBlockCondition.broadcast();
}
waitForThreadCompletion(m_blockFreeingThread, 0);
-#endif
// The destroy function must already have been called, so assert this.
ASSERT(!m_globalData);
@@ -317,14 +313,11 @@
m_destroyedTypeCounts.dump(stderr, "Destroyed Type Counts");
#endif
-#if ENABLE(LAZY_BLOCK_FREEING)
releaseFreeBlocks();
-#endif
m_globalData = 0;
}
-#if ENABLE(LAZY_BLOCK_FREEING)
void Heap::waitForRelativeTimeWhileHoldingLock(double relative)
{
if (m_blockFreeingThreadShouldQuit)
@@ -386,7 +379,6 @@
}
}
}
-#endif // ENABLE(LAZY_BLOCK_FREEING)
void Heap::reportExtraMemoryCostSlowCase(size_t cost)
{
@@ -736,12 +728,6 @@
{
MarkedBlock* block;
-#if !ENABLE(LAZY_BLOCK_FREEING)
- if (allocationEffort == AllocationCanFail)
- return 0;
-
- block = MarkedBlock::create(this, cellSize);
-#else
{
MutexLocker locker(m_freeBlockLock);
if (m_numberOfFreeBlocks) {
@@ -757,7 +743,6 @@
return 0;
else
block = MarkedBlock::create(this, cellSize);
-#endif
m_blocks.add(block);
@@ -772,13 +757,9 @@
m_blocks.remove(block);
block->reset();
-#if !ENABLE(LAZY_BLOCK_FREEING)
- MarkedBlock::destroy(block);
-#else
MutexLocker locker(m_freeBlockLock);
m_freeBlocks.append(block);
m_numberOfFreeBlocks++;
-#endif
}
}
@@ -789,7 +770,6 @@
freeBlocks(forEachBlock(takeIfEmpty));
}
-#if ENABLE(LAZY_BLOCK_FREEING)
void Heap::releaseFreeBlocks()
{
while (true) {
@@ -811,7 +791,6 @@
MarkedBlock::destroy(block);
}
}
-#endif
#if ENABLE(GGC)
void Heap::writeBarrierSlowCase(const JSCell* owner, JSCell* cell)
Modified: trunk/Source/_javascript_Core/heap/Heap.h (95511 => 95512)
--- trunk/Source/_javascript_Core/heap/Heap.h 2011-09-20 03:55:29 UTC (rev 95511)
+++ trunk/Source/_javascript_Core/heap/Heap.h 2011-09-20 04:05:28 UTC (rev 95512)
@@ -164,12 +164,10 @@
static void writeBarrierSlowCase(const JSCell*, JSCell*);
-#if ENABLE(LAZY_BLOCK_FREEING)
void waitForRelativeTimeWhileHoldingLock(double relative);
void waitForRelativeTime(double relative);
void blockFreeingThreadMain();
static void* blockFreeingThreadStartFunc(void* heap);
-#endif
const HeapSize m_heapSize;
const size_t m_minBytesPerCycle;
@@ -178,7 +176,6 @@
MarkedSpace m_markedSpace;
MarkedBlockSet m_blocks;
-#if ENABLE(LAZY_BLOCK_FREEING)
DoublyLinkedList<MarkedBlock> m_freeBlocks;
size_t m_numberOfFreeBlocks;
@@ -186,7 +183,6 @@
Mutex m_freeBlockLock;
ThreadCondition m_freeBlockCondition;
bool m_blockFreeingThreadShouldQuit;
-#endif
#if ENABLE(SIMPLE_HEAP_PROFILING)
VTableSpectrum m_destroyedTypeCounts;
Modified: trunk/Source/_javascript_Core/wtf/Platform.h (95511 => 95512)
--- trunk/Source/_javascript_Core/wtf/Platform.h 2011-09-20 03:55:29 UTC (rev 95511)
+++ trunk/Source/_javascript_Core/wtf/Platform.h 2011-09-20 04:05:28 UTC (rev 95512)
@@ -1035,10 +1035,6 @@
#endif
#endif
-#if !defined(ENABLE_LAZY_BLOCK_FREEING)
-#define ENABLE_LAZY_BLOCK_FREEING 1
-#endif
-
#ifndef ENABLE_LARGE_HEAP
#if CPU(X86) || CPU(X86_64)
#define ENABLE_LARGE_HEAP 1