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

Don't run finalizers until Guile is initialized

Prevents a problem where with-exception-handler isn't defined yet by the
time the first finalizer gets kicked off (it's a file port, probably one
that is closed already...)

* libguile/finalizers.h:
* libguile/init.c (scm_i_init_guile):
* libguile/finalizers.c (queue_finalizer_async): Mark maybe-unused.
(scm_init_finalizers): Rework to only enable notification when Guile is
finished initializing.
This commit is contained in:
Andy Wingo 2025-05-04 09:12:52 +02:00
parent 4f8d4e6c34
commit 17ca7a928e
3 changed files with 17 additions and 18 deletions

View file

@ -390,7 +390,6 @@ scm_i_init_guile (struct gc_stack_addr base)
scm_init_dynwind (); /* requires smob_prehistory */
scm_init_eq ();
scm_init_error ();
scm_init_finalizers ();
scm_init_fluids ();
scm_init_control (); /* requires fluids */
scm_init_feature ();
@ -505,5 +504,5 @@ scm_i_init_guile (struct gc_stack_addr base)
scm_init_threads_default_dynamic_state ();
/* Finally, cause finalizers to run in a separate thread. */
scm_init_finalizer_thread ();
scm_init_finalizers ();
}