summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2012-01-30 16:42:09 +0100
committerAndy Wingo <wingo@pobox.com>2012-01-30 17:06:37 +0100
commite1fbe716e8596b7027af57623ebc72a0c6393187 (patch)
treeedfa4f23d9f43a8054aa4699d8d65bd82f43c163
parent07c2ca0f0d56ebe515cb4ee9f1c3f4b3e824ca7b (diff)
downloadguile-e1fbe716e8596b7027af57623ebc72a0c6393187.tar.gz
fix hook invocation during thread guilification
* libguile/gc.c (run_before_gc_c_hook): Don't run pre-GC hooks from a thread that is in the process of guilification.
-rw-r--r--libguile/gc.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libguile/gc.c b/libguile/gc.c
index 7816801e1..fd37046af 100644
--- a/libguile/gc.c
+++ b/libguile/gc.c
@@ -234,6 +234,10 @@ scm_t_c_hook scm_after_gc_c_hook;
static void
run_before_gc_c_hook (void)
{
+ if (!SCM_I_CURRENT_THREAD)
+ /* GC while a thread is spinning up; punt. */
+ return;
+
scm_c_hook_run (&scm_before_gc_c_hook, NULL);
}