diff options
author | Ludovic Courtès <ludo@gnu.org> | 2008-09-10 22:50:04 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2008-09-10 22:50:04 +0200 |
commit | 6774820f1e83a388b3232cd61a66340886b395d8 (patch) | |
tree | 513cae9f2b9168aea1e4e20c3ce91cf89e0ce817 /libguile/init.c | |
parent | b74e86cf5f50612742609210ad8e04d46069437f (diff) | |
parent | 29776e85da637ec4d44b2b2822d6934a50c0084b (diff) | |
download | guile-6774820f1e83a388b3232cd61a66340886b395d8.tar.gz |
Merge commit '29776e85da637ec4d44b2b2822d6934a50c0084b' into boehm-demers-weiser-gc
Conflicts:
libguile/gc-card.c
libguile/gc.c
libguile/gc.h
libguile/ports.c
Diffstat (limited to 'libguile/init.c')
-rw-r--r-- | libguile/init.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libguile/init.c b/libguile/init.c index b65bc17cb..d9d75242c 100644 --- a/libguile/init.c +++ b/libguile/init.c @@ -395,6 +395,14 @@ really_cleanup_for_exit (void *unused) 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. */ @@ -474,6 +482,7 @@ scm_i_init_guile (SCM_STACKITEM *base) 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 (); @@ -492,7 +501,6 @@ scm_i_init_guile (SCM_STACKITEM *base) scm_init_numbers (); scm_init_options (); scm_init_pairs (); - scm_init_ports (); #ifdef HAVE_POSIX scm_init_filesys (); scm_init_posix (); |