diff options
author | Peter Zhu <[email protected]> | 2025-01-15 13:07:44 -0500 |
---|---|---|
committer | git <[email protected]> | 2025-01-15 18:08:03 +0000 |
commit | ab1565ebe3691d85c0cc38c895ad0b35b35abd40 (patch) | |
tree | 304b7a95da577e978da9a0cd19f7d2231dee7be1 /gc/mmtk/src | |
parent | e5ad894959c275fa8a7da7371a7dc411e67ed0a4 (diff) |
[ruby/mmtk] Add mmtk_plan to GC.config
https://github.com/ruby/mmtk/commit/67da9ea5b8
Diffstat (limited to 'gc/mmtk/src')
-rw-r--r-- | gc/mmtk/src/api.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gc/mmtk/src/api.rs b/gc/mmtk/src/api.rs index 3fa8b2af02..b68b3953d3 100644 --- a/gc/mmtk/src/api.rs +++ b/gc/mmtk/src/api.rs @@ -333,6 +333,20 @@ pub extern "C" fn mmtk_worker_count() -> usize { memory_manager::num_of_workers(mmtk()) } +#[no_mangle] +pub extern "C" fn mmtk_plan() -> *const u8 { + static NO_GC: &[u8] = b"NoGC\0"; + static MARK_SWEEP: &[u8] = b"MarkSweep\0"; + static IMMIX: &[u8] = b"Immix\0"; + + match *crate::BINDING.get().unwrap().mmtk.get_options().plan { + PlanSelector::NoGC => NO_GC.as_ptr(), + PlanSelector::MarkSweep => MARK_SWEEP.as_ptr(), + PlanSelector::Immix => IMMIX.as_ptr(), + _ => panic!("Unknown plan") + } +} + // =============== Miscellaneous =============== #[no_mangle] |