summaryrefslogtreecommitdiff
path: root/deps/v8/src/heap/scavenger.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/heap/scavenger.cc')
-rw-r--r--deps/v8/src/heap/scavenger.cc22
1 files changed, 15 insertions, 7 deletions
diff --git a/deps/v8/src/heap/scavenger.cc b/deps/v8/src/heap/scavenger.cc
index c7666b7da7..70b514142f 100644
--- a/deps/v8/src/heap/scavenger.cc
+++ b/deps/v8/src/heap/scavenger.cc
@@ -41,10 +41,20 @@ class ScavengingTask final : public ItemParallelJob::Task {
scavenger_(scavenger),
barrier_(barrier) {}
- void RunInParallel() final {
- TRACE_BACKGROUND_GC(
- heap_->tracer(),
- GCTracer::BackgroundScope::SCAVENGER_BACKGROUND_SCAVENGE_PARALLEL);
+ void RunInParallel(Runner runner) final {
+ if (runner == Runner::kForeground) {
+ TRACE_GC(heap_->tracer(), GCTracer::Scope::SCAVENGER_SCAVENGE_PARALLEL);
+ ProcessItems();
+ } else {
+ TRACE_BACKGROUND_GC(
+ heap_->tracer(),
+ GCTracer::BackgroundScope::SCAVENGER_BACKGROUND_SCAVENGE_PARALLEL);
+ ProcessItems();
+ }
+ }
+
+ private:
+ void ProcessItems() {
double scavenging_time = 0.0;
{
barrier_->Start();
@@ -66,8 +76,6 @@ class ScavengingTask final : public ItemParallelJob::Task {
scavenger_->bytes_copied(), scavenger_->bytes_promoted());
}
}
-
- private:
Heap* const heap_;
Scavenger* const scavenger_;
OneshotBarrier* const barrier_;
@@ -413,7 +421,7 @@ void Scavenger::RememberPromotedEphemeron(EphemeronHashTable table, int entry) {
}
void Scavenger::AddPageToSweeperIfNecessary(MemoryChunk* page) {
- AllocationSpace space = page->owner()->identity();
+ AllocationSpace space = page->owner_identity();
if ((space == OLD_SPACE) && !page->SweepingDone()) {
heap()->mark_compact_collector()->sweeper()->AddPage(
space, reinterpret_cast<Page*>(page),