summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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))
}