1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-20 11:40:18 +02:00

Make `scm_i_ensure_signal_delivery_thread' call in Guile mode.

* libguile/threads.c (on_thread_exit): Move
  `scm_i_ensure_signal_delivery_thread' call...
  (do_thread_exit): ... here.
This commit is contained in:
Ludovic Courtès 2011-04-25 16:44:54 +02:00
parent 96128014bf
commit 912308835d

View file

@ -613,6 +613,10 @@ do_thread_exit (void *v)
{
scm_i_thread *t = (scm_i_thread *) v;
/* Ensure the signal handling thread has been launched, because we might be
shutting it down. This needs to be done in Guile mode. */
scm_i_ensure_signal_delivery_thread ();
if (!scm_is_false (t->cleanup_handler))
{
SCM ptr = t->cleanup_handler;
@ -687,10 +691,6 @@ on_thread_exit (void *v)
case but it doesn't hurt to be consistent. */
scm_i_pthread_setspecific (scm_i_thread_key, t);
/* Ensure the signal handling thread has been launched, because we might be
shutting it down. */
scm_i_ensure_signal_delivery_thread ();
/* Scheme-level thread finalizers and other cleanup needs to happen in
guile mode. */
GC_call_with_stack_base (do_thread_exit_trampoline, t);