From 3f69e638be12cfe9d5963df21e6c004a733f0ca1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Wed, 23 Apr 2014 18:12:26 +0200 Subject: [PATCH] Set $GC_MARKERS to 1 when libgc 7.4.0 is used. * libguile/gc.c (scm_storage_prehistory) [GC_VERSION == 7.4.0]: Add 'setenv' call. --- libguile/gc.c | 8 ++++++++ 1 file changed, 8 insertions(+) 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: . + Work around it by asking for one marker thread. */ + setenv ("GC_MARKERS", "1", 1); +#endif + GC_INIT (); GC_expand_hp (DEFAULT_INITIAL_HEAP_SIZE);