Index: src/mark-compact.cc |
diff --git a/src/mark-compact.cc b/src/mark-compact.cc |
index 4dc4a95c8de2ab9b830c365a4b498fffb06e7d38..bdd4785e3e729368ab1c6bf297e48457f9b5c6b4 100644 |
--- a/src/mark-compact.cc |
+++ b/src/mark-compact.cc |
@@ -37,6 +37,7 @@ |
#include "ic-inl.h" |
#include "incremental-marking.h" |
#include "mark-compact.h" |
+#include "marking-thread.h" |
#include "objects-visiting.h" |
#include "objects-visiting-inl.h" |
#include "stub-cache.h" |
@@ -540,6 +541,20 @@ bool MarkCompactCollector::AreSweeperThreadsActivated() { |
} |
+void MarkCompactCollector::MarkInParallel() { |
+ for (int i = 0; i < FLAG_marking_threads; i++) { |
+ heap()->isolate()->marking_threads()[i]->StartMarking(); |
+ } |
+} |
+ |
+ |
+void MarkCompactCollector::WaitUntilMarkingCompleted() { |
+ for (int i = 0; i < FLAG_marking_threads; i++) { |
+ heap()->isolate()->marking_threads()[i]->WaitForMarkingThread(); |
+ } |
+} |
+ |
+ |
bool Marking::TransferMark(Address old_start, Address new_start) { |
// This is only used when resizing an object. |
ASSERT(MemoryChunk::FromAddress(old_start) == |