From: Andrea Azzarone Date: Thu, 11 Apr 2019 15:30:58 +0000 (+0100) Subject: Fix gc.test "after-gc-hook gets called" failures. X-Git-Tag: v2.9.2~2^2~9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=546b0e87294b837ec29164d87cf17102e9aeee0c;p=platform%2Fupstream%2Fguile.git Fix gc.test "after-gc-hook gets called" failures. * libguile/scmsigs.c (signal_delivery_thread): Call scm_async_tick to give any pending asyncs a chance to run before we block indefinitely waiting for a signal to arrive. --- diff --git a/libguile/scmsigs.c b/libguile/scmsigs.c index 21b2a9529..755e657ea 100644 --- a/libguile/scmsigs.c +++ b/libguile/scmsigs.c @@ -174,6 +174,14 @@ signal_delivery_thread (void *data) { struct signal_pipe_data sigdata; + /* This tick gives any pending asyncs a chance to run before we + block indefinitely waiting for a signal to arrive. For example + it can happen that the garbage collector is triggered while + marking the signal handler for future execution. Due to the + way the after-gc-hook is designed, without a call to + scm_async_tick, the after-gc-hook will not be triggered. */ + scm_async_tick (); + scm_without_guile (read_signal_pipe_data, &sigdata); sig = sigdata.sigbyte;