diff --git a/libguile/threads.c b/libguile/threads.c index 5d1390941..8b394584e 100644 --- a/libguile/threads.c +++ b/libguile/threads.c @@ -300,6 +300,7 @@ guilify_self_1 (SCM_STACKITEM *base) pipe (t->sleep_pipe); scm_i_pthread_mutex_init (&t->heap_mutex, NULL); t->clear_freelists_p = 0; + t->gc_running_p = 0; t->exited = 0; t->freelist = SCM_EOL; diff --git a/libguile/threads.h b/libguile/threads.h index 3e16fbbcd..89a701075 100644 --- a/libguile/threads.h +++ b/libguile/threads.h @@ -69,6 +69,8 @@ typedef struct scm_i_thread { */ SCM freelist, freelist2; int clear_freelists_p; /* set if GC was done while thread was asleep */ + int gc_running_p; /* non-zero while this thread does GC or a + sweep. */ /* Other thread local things. */