@@ -64,6 +64,19 @@ fn mmtk_builder_default_parse_heap_min() -> usize {
64
64
size
65
65
}
66
66
67
+ fn mmtk_builder_default_parse_heap_max ( ) -> usize {
68
+ let heap_max_str = std:: env:: var ( "MMTK_HEAP_MAX" )
69
+ . unwrap_or ( default_heap_max ( ) . to_string ( ) ) ;
70
+
71
+ let size = parse_capacity ( & heap_max_str, 0 ) ;
72
+ if size == 0 {
73
+ eprintln ! ( "[FATAL] Invalid MMTK_HEAP_MAX {}" , heap_max_str) ;
74
+ std:: process:: exit ( 1 ) ;
75
+ }
76
+
77
+ size
78
+ }
79
+
67
80
#[ no_mangle]
68
81
pub extern "C" fn mmtk_builder_default ( ) -> * mut MMTKBuilder {
69
82
let mut builder = MMTKBuilder :: new_no_env_vars ( ) ;
@@ -76,25 +89,16 @@ pub extern "C" fn mmtk_builder_default() -> *mut MMTKBuilder {
76
89
77
90
let heap_min = mmtk_builder_default_parse_heap_min ( ) ;
78
91
79
- let mmtk_heap_max = match std:: env:: var ( "MMTK_HEAP_MAX" ) {
80
- Ok ( max) => {
81
- let capa = parse_capacity ( & max, default_heap_max ( ) ) ;
82
- if capa == default_heap_max ( ) {
83
- eprintln ! ( "MMTK_HEAP_MAX: value ({}) unusable, Using default." , max)
84
- } ;
85
- capa
86
- } ,
87
- Err ( _) => default_heap_max ( )
88
- } ;
92
+ let heap_max = mmtk_builder_default_parse_heap_max ( ) ;
89
93
90
- if heap_min >= mmtk_heap_max {
91
- eprintln ! ( "[FATAL] MMTK_HEAP_MIN({}) >= MMTK_HEAP_MAX({})" , heap_min, mmtk_heap_max ) ;
94
+ if heap_min >= heap_max {
95
+ eprintln ! ( "[FATAL] MMTK_HEAP_MIN({}) >= MMTK_HEAP_MAX({})" , heap_min, heap_max ) ;
92
96
std:: process:: exit ( 1 ) ;
93
97
}
94
98
95
99
let mmtk_mode = match std:: env:: var ( "MMTK_HEAP_MODE" ) {
96
- Ok ( mode) if ( mode == "fixed" ) => GCTriggerSelector :: FixedHeapSize ( mmtk_heap_max ) ,
97
- Ok ( _) | Err ( _) => GCTriggerSelector :: DynamicHeapSize ( heap_min, mmtk_heap_max )
100
+ Ok ( mode) if ( mode == "fixed" ) => GCTriggerSelector :: FixedHeapSize ( heap_max ) ,
101
+ Ok ( _) | Err ( _) => GCTriggerSelector :: DynamicHeapSize ( heap_min, heap_max )
98
102
} ;
99
103
100
104
// Parse the env var, if it's not found set the plan name to MarkSweep
0 commit comments