summaryrefslogtreecommitdiff
path: root/gc/mmtk/src
diff options
context:
space:
mode:
authorMatt Valentine-House <[email protected]>2024-12-05 14:41:05 +0000
committergit <[email protected]>2024-12-05 16:28:02 +0000
commitd8dbc2dcba43ff36221f6549205d2d4cf64b760c (patch)
treea8a3b9d852339ff5638e5a1758544df92fdd2bb0 /gc/mmtk/src
parentce1ad1b816f912d0750669c57211d72ea723e28d (diff)
[ruby/mmtk] Support setting the mmtk thread count with MMTK_THREADS
https://github.com/ruby/mmtk/commit/e4d6b56824
Diffstat (limited to 'gc/mmtk/src')
-rw-r--r--gc/mmtk/src/api.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/gc/mmtk/src/api.rs b/gc/mmtk/src/api.rs
index b3d4c90f87..ae626a4a0f 100644
--- a/gc/mmtk/src/api.rs
+++ b/gc/mmtk/src/api.rs
@@ -44,6 +44,11 @@ pub extern "C" fn mmtk_builder_default() -> *mut MMTKBuilder {
const DEFAULT_HEAP_MIN: usize = 1 << 20;
+ let mmtk_threads: usize = std::env::var("MMTK_THREADS")
+ .unwrap_or("0".to_string())
+ .parse::<usize>()
+ .unwrap_or(0);
+
let mut mmtk_heap_min = match std::env::var("MMTK_HEAP_MIN") {
Ok(min) => {
let capa = parse_capacity(&min, DEFAULT_HEAP_MIN);
@@ -90,6 +95,10 @@ pub extern "C" fn mmtk_builder_default() -> *mut MMTKBuilder {
// Between 1MiB and 500MiB
builder.options.gc_trigger.set(mmtk_mode);
+ if mmtk_threads > 0 {
+ builder.options.threads.set(mmtk_threads);
+ }
+
Box::into_raw(Box::new(builder))
}