From 96dce83a20e2def32cdfc0f7a9ffa2dce74d3c46 Mon Sep 17 00:00:00 2001 From: Yi Lin Date: Wed, 16 Nov 2022 09:54:16 +1100 Subject: [PATCH] Change LAST_CLOSURE_BUCKET to FIRST_REF_CLOSURE_BUCKET. --- src/scheduler/scheduler.rs | 4 ++-- src/scheduler/work_bucket.rs | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/scheduler/scheduler.rs b/src/scheduler/scheduler.rs index 65cfd44df2..6b54e4509b 100644 --- a/src/scheduler/scheduler.rs +++ b/src/scheduler/scheduler.rs @@ -92,12 +92,12 @@ impl GCWorkScheduler { move |scheduler: &GCWorkScheduler| { let should_open = scheduler.are_buckets_drained(&cur_stages); // Additional check before the `RefClosure` bucket opens. - if should_open && stage == LAST_CLOSURE_BUCKET { + if should_open && stage == FIRST_REF_CLOSURE_BUCKET { if let Some(closure_end) = scheduler.closure_end.lock().unwrap().as_ref() { if closure_end() { - // Don't open `LAST_CLOSURE_BUCKET` if `closure_end` added more works to `Closure`. + // Don't open `FIRST_REF_CLOSURE_BUCKET` if `closure_end` added more works to `Closure`. return false; } } diff --git a/src/scheduler/work_bucket.rs b/src/scheduler/work_bucket.rs index 078c6a94ab..1bf8605759 100644 --- a/src/scheduler/work_bucket.rs +++ b/src/scheduler/work_bucket.rs @@ -229,4 +229,6 @@ impl WorkBucketStage { } } -pub const LAST_CLOSURE_BUCKET: WorkBucketStage = WorkBucketStage::PhantomRefClosure; +/// This constant tracks the first ref closure bucket. We allow bindings to implement their own +/// weak reference processing before this bucket is opened and before MMTk's weak reference processing. +pub const FIRST_REF_CLOSURE_BUCKET: WorkBucketStage = WorkBucketStage::SoftRefClosure;