summaryrefslogtreecommitdiff
path: root/libguile/gc-malloc.c
diff options
context:
space:
mode:
authorHan-Wen Nienhuys <hanwen@lilypond.org>2006-02-14 11:38:30 +0000
committerHan-Wen Nienhuys <hanwen@lilypond.org>2006-02-14 11:38:30 +0000
commit4c7016dc06525c7910ce6c99d97eb9c52c6b43e4 (patch)
tree596b824412bf39911e8388ba60e85eba5029e817 /libguile/gc-malloc.c
parentb712c10755ad4304f6352a32ec607c8fad1a61a9 (diff)
downloadguile-4c7016dc06525c7910ce6c99d97eb9c52c6b43e4.tar.gz
Ludovic's patch for scm_t_sweep_statistics.
Diffstat (limited to 'libguile/gc-malloc.c')
-rw-r--r--libguile/gc-malloc.c10
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);