wingo pushed a commit to branch wip-whippet in repository guile. commit b585ccfa8fec1cc3bf1c8dfba87c83367d68e1ef Author: Andy Wingo <wi...@pobox.com> AuthorDate: Tue Jul 15 11:20:22 2025 +0200
Deactivate mutator while stopping signal thread * libguile/scmsigs.c (stop_signal_delivery_thread): Deactivate mutator, so that we don't deadlock. --- libguile/scmsigs.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libguile/scmsigs.c b/libguile/scmsigs.c index 88fbd760c..3a9d6dc4a 100644 --- a/libguile/scmsigs.c +++ b/libguile/scmsigs.c @@ -252,6 +252,8 @@ scm_i_ensure_signal_delivery_thread () static void stop_signal_delivery_thread () { + scm_thread *thr = SCM_I_CURRENT_THREAD; + gc_deactivate (thr->mutator); scm_i_pthread_mutex_lock (&signal_delivery_thread_mutex); if (signal_delivery_thread_state != RUNNING) goto done; @@ -272,6 +274,7 @@ stop_signal_delivery_thread () done: scm_i_pthread_mutex_unlock (&signal_delivery_thread_mutex); + gc_reactivate (thr->mutator); } static int