From d9eb803e9c6ecbc0f3f85bda5d01eb4648f62626 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 25 Nov 2011 07:00:39 -0700 Subject: [PATCH] add hook to force a minor GC --- src/racket/gc2/gc2.h | 3 ++- src/racket/gc2/newgc.c | 13 +++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/racket/gc2/gc2.h b/src/racket/gc2/gc2.h index a289965c8e..64ff37fa1e 100644 --- a/src/racket/gc2/gc2.h +++ b/src/racket/gc2/gc2.h @@ -159,8 +159,9 @@ GC2_EXTERN uintptr_t GC_get_account_memory_limit(void *c1); or 0 if none is set. */ GC2_EXTERN void GC_gcollect(void); +GC2_EXTERN void GC_gcollect_minor(void); /* - Performs an immediate (full) collection. */ + Performs an immediate [full] collection. */ GC2_EXTERN void GC_enable_collection(int on); /* diff --git a/src/racket/gc2/newgc.c b/src/racket/gc2/newgc.c index 9d871a4cf4..7370cde4d5 100644 --- a/src/racket/gc2/newgc.c +++ b/src/racket/gc2/newgc.c @@ -2877,6 +2877,19 @@ void GC_gcollect(void) garbage_collect(gc, 1, 0, NULL); } +void GC_gcollect_minor(void) +{ + NewGC *gc = GC_get_GC(); + + if (gc->dumping_avoid_collection) return; + +#ifdef MZ_USE_PLACES + if (postmaster_and_master_gc(gc)) return; +#endif + + garbage_collect(gc, 0, 0, NULL); +} + void GC_enable_collection(int on) { NewGC *gc = GC_get_GC();