+2007-08-26 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * init.c (cleanup_for_exit): abort cleanup if init_mutex is still
+ held.
+
2007-08-23 Ludovic Courtès <ludo@gnu.org>
* read.c (scm_read_quote): Record position and copy source
static void
cleanup_for_exit ()
{
+ if (scm_i_pthread_mutex_trylock (&scm_i_init_mutex) == 0)
+ scm_i_pthread_mutex_unlock (&scm_i_init_mutex);
+ else
+ {
+ fprintf (stderr, "Cannot exit gracefully when init is in progress; aborting.\n");
+ abort ();
+ }
+
/* This function might be called in non-guile mode, so we need to
enter it temporarily.
*/
scm_init_backtrace (); /* Requires fluids */
scm_init_fports ();
scm_init_strports ();
+ scm_init_ports ();
scm_init_gdbint (); /* Requires strports */
scm_init_hash ();
scm_init_hashtab ();
scm_init_numbers ();
scm_init_options ();
scm_init_pairs ();
- scm_init_ports ();
#ifdef HAVE_POSIX
scm_init_filesys ();
scm_init_posix ();