summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libguile/gc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libguile/gc.c b/libguile/gc.c
index eacd5e256..bc35faf33 100644
--- a/libguile/gc.c
+++ b/libguile/gc.c
@@ -602,6 +602,14 @@ scm_storage_prehistory ()
GC_set_free_space_divisor (free_space_divisor);
GC_set_finalize_on_demand (1);
+#if (GC_VERSION_MAJOR == 7 && GC_VERSION_MINOR == 4 \
+ && GC_ALPHA_VERSION == 0)
+ /* BDW-GC 7.4.0 has a bug making it loop indefinitely when using more
+ than one marker thread: <https://github.com/ivmai/bdwgc/pull/30>.
+ Work around it by asking for one marker thread. */
+ setenv ("GC_MARKERS", "1", 1);
+#endif
+
GC_INIT ();
GC_expand_hp (DEFAULT_INITIAL_HEAP_SIZE);