106 |
SCM_DEFAULT_INIT_MALLOC_LIMIT); |
SCM_DEFAULT_INIT_MALLOC_LIMIT); |
107 |
scm_i_minyield_malloc = scm_getenv_int ("GUILE_MIN_YIELD_MALLOC", |
scm_i_minyield_malloc = scm_getenv_int ("GUILE_MIN_YIELD_MALLOC", |
108 |
SCM_DEFAULT_MALLOC_MINYIELD); |
SCM_DEFAULT_MALLOC_MINYIELD); |
109 |
|
|
110 |
|
if (scm_i_minyield_malloc >= 100) |
111 |
|
scm_i_minyield_malloc = 99; |
112 |
|
if (scm_i_minyield_malloc < 1) |
113 |
|
scm_i_minyield_malloc = 1; |
114 |
|
|
115 |
|
if (scm_mtrigger < 0) |
116 |
|
scm_mtrigger = SCM_DEFAULT_INIT_MALLOC_LIMIT; |
117 |
} |
} |
118 |
|
|
119 |
|
|
234 |
Instead of getting bogged down, we let the mtrigger grow |
Instead of getting bogged down, we let the mtrigger grow |
235 |
strongly with it. |
strongly with it. |
236 |
*/ |
*/ |
237 |
scm_mtrigger = (scm_mallocated * 110) / (100 - scm_i_minyield_malloc); |
float no_overflow_trigger = (float)(scm_mallocated * 110); |
238 |
|
|
239 |
|
no_overflow_trigger /= (float) (100 - scm_i_minyield_malloc); |
240 |
|
scm_mtrigger = (unsigned long) no_overflow_trigger; |
241 |
|
|
242 |
#ifdef DEBUGINFO |
#ifdef DEBUGINFO |
243 |
fprintf (stderr, "Mtrigger sweep: ineffective. New trigger %d\n", scm_mtrigger); |
fprintf (stderr, "Mtrigger sweep: ineffective. New trigger %d\n", scm_mtrigger); |