path: root/
diff options
authorivmai <ivmai>2009-09-23 08:57:52 +0200
committerIvan Maidanski <>2011-07-26 19:06:47 +0200
commitaad2a55ff155c50befcabba91d4f72be4a1f31a1 (patch)
treede11984200d7d3b944b9cd5dd0bcb47f01d8062a /
parent1d2e8299a2464b76c7540b4a87caa69c9b208906 (diff)
2009-09-23 Ivan Maidanski <>
(ivmai150.diff) * (MUNMAP_THRESHOLD, GC_FORCE_UNMAP_ON_GCOLLECT): Add the comment for. * alloc.c (GC_unmap_threshold, GC_force_unmap_on_gcollect): Declare external variable (only if USE_MUNMAP). * alloc.c (GC_try_to_collect): Temporarily set GC_unmap_threshold value to 1 if GC_force_unmap_on_gcollect and restore it before unlocking (only if USE_MUNMAP). * doc/README.environment (GC_FORCE_UNMAP_ON_GCOLLECT): Add information for. * include/gc.h (GC_set_force_unmap_on_gcollect, GC_get_force_unmap_on_gcollect): New public function prototype. * include/gc.h (GC_FORCE_UNMAP_ON_GCOLLECT): New macro is recognized. * misc.c (GC_FORCE_UNMAP_ON_GCOLLECT): Ditto. * include/gc.h (GC_INIT_CONF_FORCE_UNMAP_ON_GCOLLECT): New internal macro (used by GC_INIT only). * misc.c (GC_force_unmap_on_gcollect): New global variable. * misc.c (GC_init): Recognize new "GC_FORCE_UNMAP_ON_GCOLLECT" environment variable (and set GC_force_unmap_on_gcollect). * misc.c (GC_set_force_unmap_on_gcollect, GC_get_force_unmap_on_gcollect): New public function. * tests/test.c (window_proc): Call GC_set_force_unmap_on_gcollect to force the mode on if WM_HIBERNATE; restore the mode after GC_gcollect().
Diffstat (limited to '')
1 files changed, 7 insertions, 0 deletions
diff --git a/ b/
index 7b49dc6..f15d265 100644
--- a/
+++ b/
@@ -186,6 +186,13 @@ HOSTCFLAGS=$(CFLAGS)
# (except for Win32 with GetWriteWatch available).
# Works under some Unix, Linux and Windows versions.
# Requires -DUSE_MMAP except for Windows.
+# -DMUNMAP_THRESHOLD=<value> Set the desired memory blocks unmapping threshold
+# (the number of sequential garbage collections for which a candidate block
+# for unmapping should remain free).
+# -DGC_FORCE_UNMAP_ON_GCOLLECT Set "unmap as much as possible on explicit GC"
+# mode on by default. The mode could be changed at run-time. Has no effect
+# unless unmapping is turned on. Has no effect on implicitly-initiated
+# garbage collections.
# -DMMAP_STACKS (for Solaris threads) Use mmap from /dev/zero rather than
# GC_scratch_alloc() to get stack memory.
# -DPRINT_BLACK_LIST Whenever a black list entry is added, i.e. whenever