Index: src/heap.cc |
diff --git a/src/heap.cc b/src/heap.cc |
index 765081a9ca874d035478c80a7ee85dadf3d6eea4..5a1c57fe221776af3babba9b0d7919c7f4502675 100644 |
--- a/src/heap.cc |
+++ b/src/heap.cc |
@@ -1199,6 +1199,7 @@ class ScavengeWeakObjectRetainer : public WeakObjectRetainer { |
void Heap::Scavenge() { |
+ RelocationLock relocation_lock(this); |
#ifdef DEBUG |
if (FLAG_verify_heap) VerifyNonPointerSpacePointers(); |
#endif |
@@ -6156,6 +6157,8 @@ bool Heap::SetUp(bool create_heap_objects) { |
store_buffer()->SetUp(); |
+ if (FLAG_parallel_recompilation) relocation_mutex_ = OS::CreateMutex(); |
+ |
return true; |
} |
@@ -6241,6 +6244,8 @@ void Heap::TearDown() { |
isolate_->memory_allocator()->TearDown(); |
+ delete relocation_mutex_; |
+ |
#ifdef DEBUG |
delete debug_utils_; |
debug_utils_ = NULL; |