diff options
author | Han-Wen Nienhuys <hanwen@lilypond.org> | 2006-02-14 11:38:30 +0000 |
---|---|---|
committer | Han-Wen Nienhuys <hanwen@lilypond.org> | 2006-02-14 11:38:30 +0000 |
commit | 4c7016dc06525c7910ce6c99d97eb9c52c6b43e4 (patch) | |
tree | 596b824412bf39911e8388ba60e85eba5029e817 /libguile/gc-malloc.c | |
parent | b712c10755ad4304f6352a32ec607c8fad1a61a9 (diff) | |
download | guile-4c7016dc06525c7910ce6c99d97eb9c52c6b43e4.tar.gz |
Ludovic's patch for scm_t_sweep_statistics.
Diffstat (limited to 'libguile/gc-malloc.c')
-rw-r--r-- | libguile/gc-malloc.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/libguile/gc-malloc.c b/libguile/gc-malloc.c index e88263afb..ccdc58323 100644 --- a/libguile/gc-malloc.c +++ b/libguile/gc-malloc.c @@ -105,6 +105,7 @@ void * scm_realloc (void *mem, size_t size) { void *ptr; + scm_t_sweep_statistics sweep_stats; SCM_SYSCALL (ptr = realloc (mem, size)); if (ptr) @@ -113,7 +114,7 @@ scm_realloc (void *mem, size_t size) scm_i_scm_pthread_mutex_lock (&scm_i_sweep_mutex); scm_gc_running_p = 1; - scm_i_sweep_all_segments ("realloc"); + scm_i_sweep_all_segments ("realloc", &sweep_stats); SCM_SYSCALL (ptr = realloc (mem, size)); if (ptr) @@ -124,7 +125,7 @@ scm_realloc (void *mem, size_t size) } scm_i_gc ("realloc"); - scm_i_sweep_all_segments ("realloc"); + scm_i_sweep_all_segments ("realloc", &sweep_stats); scm_gc_running_p = 0; scm_i_pthread_mutex_unlock (&scm_i_sweep_mutex); @@ -220,13 +221,14 @@ increase_mtrigger (size_t size, const char *what) { unsigned long prev_alloced; float yield; - + scm_t_sweep_statistics sweep_stats; + scm_i_scm_pthread_mutex_lock (&scm_i_sweep_mutex); scm_gc_running_p = 1; prev_alloced = mallocated; scm_i_gc (what); - scm_i_sweep_all_segments ("mtrigger"); + scm_i_sweep_all_segments ("mtrigger", &sweep_stats); yield = (((float) prev_alloced - (float) scm_mallocated) / (float) prev_alloced); |