Index: src/heap/mark-compact.cc |
diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc |
index 28de72ec465bbd3e7b9798d3c198ccf7539fe4d8..fe886ac8136ebe99d1924a9b9250aa357038eadf 100644 |
--- a/src/heap/mark-compact.cc |
+++ b/src/heap/mark-compact.cc |
@@ -2384,11 +2384,12 @@ void MinorMarkCompactCollector::MarkLiveObjects() { |
{ |
TRACE_GC(heap()->tracer(), |
GCTracer::Scope::MINOR_MC_MARK_OLD_TO_NEW_POINTERS); |
- RememberedSet<OLD_TO_NEW>::Iterate(heap(), [this](Address addr) { |
- return CheckAndMarkObject(heap(), addr); |
- }); |
+ RememberedSet<OLD_TO_NEW>::Iterate( |
+ heap(), NON_SYNCHRONIZED, |
+ [this](Address addr) { return CheckAndMarkObject(heap(), addr); }); |
RememberedSet<OLD_TO_NEW>::IterateTyped( |
- heap(), [this](SlotType type, Address host_addr, Address addr) { |
+ heap(), NON_SYNCHRONIZED, |
+ [this](SlotType type, Address host_addr, Address addr) { |
return UpdateTypedSlotHelper::UpdateTypedSlot( |
isolate(), type, addr, [this](Object** addr) { |
return CheckAndMarkObject(heap(), |
@@ -3986,7 +3987,7 @@ int MarkCompactCollector::Sweeper::ParallelSweepPage(Page* page, |
AllocationSpace identity) { |
int max_freed = 0; |
{ |
- base::LockGuard<base::Mutex> guard(page->mutex()); |
+ base::LockGuard<base::RecursiveMutex> guard(page->mutex()); |
// If this page was already swept in the meantime, we can return here. |
if (page->SweepingDone()) return 0; |
DCHECK_EQ(Page::kSweepingPending, |