Revision: 13651
Author: [email protected]
Date: Wed Feb 13 03:02:39 2013
Log: Fix verify heap problem when parallel sweeping is enabled.
BUG=
Review URL: https://codereview.chromium.org/12260004
http://code.google.com/p/v8/source/detail?r=13651
Modified:
/branches/bleeding_edge/src/mark-compact.cc
=======================================
--- /branches/bleeding_edge/src/mark-compact.cc Tue Feb 12 06:33:08 2013
+++ /branches/bleeding_edge/src/mark-compact.cc Wed Feb 13 03:02:39 2013
@@ -3722,7 +3722,8 @@
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);
@@ -3841,9 +3842,9 @@
#endif
SweeperType how_to_sweep =
FLAG_lazy_sweeping ? LAZY_CONSERVATIVE : CONSERVATIVE;
+ if (AreSweeperThreadsActivated()) how_to_sweep = PARALLEL_CONSERVATIVE;
if (FLAG_expose_gc) how_to_sweep = CONSERVATIVE;
if (sweep_precisely_) how_to_sweep = PRECISE;
- if (AreSweeperThreadsActivated()) how_to_sweep = PARALLEL_CONSERVATIVE;
// 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 @@
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.