Reviewers: Michael Starzinger,
Description:
Fix verify heap problem when parallel sweeping is enabled.
BUG=
Please review this at https://chromiumcodereview.appspot.com/12260004/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files:
M src/mark-compact.cc
Index: src/mark-compact.cc
diff --git a/src/mark-compact.cc b/src/mark-compact.cc
index
2ca69b3ddc84e49f0a20ad6f49461deba3a333d4..934cb22056a0dc17480d17a623348ae67b28f805
100644
--- a/src/mark-compact.cc
+++ b/src/mark-compact.cc
@@ -3722,7 +3722,8 @@ void
MarkCompactCollector::SweepInParallel(PagedSpace* space,
void MarkCompactCollector::SweepSpace(PagedSpace* space, SweeperType
sweeper) {
space->set_was_swept_conservatively(sweeper == CONSERVATIVE ||
- sweeper == LAZY_CONSERVATIVE);
+ sweeper == LAZY_CONSERVATIVE ||
+ sweeper == PARALLEL_CONSERVATIVE);
space->ClearStats();
PageIterator it(space);
@@ -3842,8 +3843,8 @@ void MarkCompactCollector::SweepSpaces() {
SweeperType how_to_sweep =
FLAG_lazy_sweeping ? LAZY_CONSERVATIVE : CONSERVATIVE;
if (FLAG_expose_gc) how_to_sweep = CONSERVATIVE;
- if (sweep_precisely_) how_to_sweep = PRECISE;
if (AreSweeperThreadsActivated()) how_to_sweep = PARALLEL_CONSERVATIVE;
+ if (sweep_precisely_) how_to_sweep = PRECISE;
// Noncompacting collections simply sweep the spaces to clear the mark
// bits and free the nonlive blocks (for old and map spaces). We sweep
// the map space last because freeing non-live maps overwrites them and
@@ -3860,7 +3861,7 @@ void MarkCompactCollector::SweepSpaces() {
EvacuateNewSpaceAndCandidates();
- if (AreSweeperThreadsActivated()) {
+ if (how_to_sweep == PARALLEL_CONSERVATIVE) {
// TODO(hpayer): The starting of the sweeper threads should be after
// SweepSpace old data space.
StartSweeperThreads();
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.